求助,Excel2003写代码按要求把Sheet1里指定的数字最下面的20个显示到S...
发布网友
发布时间:2024-10-03 23:26
我来回答
共2个回答
热心网友
时间:2024-10-06 23:43
'在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
热心网友
时间:2024-10-06 23:45
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列最大序号可以编写公式了,更简单。