求助,Excel2003写代码按要求把Sheet1里指定的数字最下面的20个显示到Sheet2的指定位置,谢谢
2个回答
展开全部
'在SHEET1的标签上,右键 查看代码 复制以下代码下去
'它的触发条件是当你离开该工作表就运行代码
Private Sub Worksheet_Deactivate()
Dim i As Long
Dim arr1, arr2
i = Me.Cells(Me.Cells.Rows.Count, 2).End(xlUp).Row
If i > 20 Then
If MsgBox("确定运行转移数据到sheet2中", vbYesNo) = vbYes Then '本行若不需要可删除
arr1 = Me.Range("b" & i - 19 & ":b" & i)
arr2 = Me.Range("i" & i - 19 & ":s" & i)
Sheets("sheet2").Range("b2").Resize(20, 1) = arr1
Sheets("sheet2").Range("c2").Resize(20, 1) = arr2
End If 'End If需要和上面 If MsgBox("确定运行转移数据到sheet2中", vbYesNo) = vbYes Then同时可删除
Else
MsgBox "你的" & Me.Name & "最大数据小于20行"
End If
End Sub
来自:求助得到的回答
展开全部
B3输入公式:
=INDEX(SHEET1!B:B,COUNTA(SHEET1!B:B)-19+ROW(A1)) 公式下拉
要求是B列从B1起到该列数据结束,这个区域内不能有空格。如果有,请理解公式意思自行修改
C3输入公式:
=VLOOKUP($B3,SHEE1!$B:$S,7+COLUMN(A1),0)
公式右拉,下拉!要求是SHEET1!B列序号不重复。
其实,如果你现在的截图就是你实际工作中的,你完全按照SHEET1!的B列最大序号可以编写公式了,更简单。
=INDEX(SHEET1!B:B,COUNTA(SHEET1!B:B)-19+ROW(A1)) 公式下拉
要求是B列从B1起到该列数据结束,这个区域内不能有空格。如果有,请理解公式意思自行修改
C3输入公式:
=VLOOKUP($B3,SHEE1!$B:$S,7+COLUMN(A1),0)
公式右拉,下拉!要求是SHEET1!B列序号不重复。
其实,如果你现在的截图就是你实际工作中的,你完全按照SHEET1!的B列最大序号可以编写公式了,更简单。
追问
非常感谢老师,我的问题实际应用时是要向下增加很多的,所以要求用VBA代码解决,您再帮我看看。
追答
那我觉得为了更直接,你直接HI我吧。不然我靠猜解决你的问题,会很耗费时间。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询