求助,Excel2003写代码按要求把Sheet1里指定的数字最下面的20个显示到Sheet2的指定位置,谢谢

 我来答
JEGDIHTDJ
2017-11-19 · TA获得超过1173个赞
知道小有建树答主
回答量:949
采纳率:0%
帮助的人:696万
展开全部
'在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
来自:求助得到的回答
思雪遥遥
科技发烧友

推荐于2017-11-19 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:8076
采纳率:49%
帮助的人:487万
展开全部
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列最大序号可以编写公式了,更简单。
追问
非常感谢老师,我的问题实际应用时是要向下增加很多的,所以要求用VBA代码解决,您再帮我看看。
追答
那我觉得为了更直接,你直接HI我吧。不然我靠猜解决你的问题,会很耗费时间。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式