Excel2003写代码实现根据条件把Sheet2里的数据提取到Sheet1里的问题,非常感谢!
4个回答
展开全部
真不明白为啥 你一直要用2003 倒腾你这个 东东
右键点 Sheet1 表名,查看代码,如下代码复制进去,启用宏使用:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 12 Then
If Application.WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target) > 0 Then
r = Sheets("Sheet2").Range("A:A").Find(Target.Value).Row
Target.Offset(0, -8).Resize(1, 5) = Sheets("Sheet2").Range("B" & r & ":F" & r).Value
Else
Target.Offset(0, -8) = "未查询到"
End If
End If
End Sub
效果如下:
追问
非常非常感谢老师,我们单位的电脑用的是2003版的,还不行改,家里的也得被迫用2003版的。抱歉,我的提问有错误了,L列的数字是由O列文本文档数字转换过来的,是用公式去掉前面的0的,我想要实现的是,在O2及以下(文本文档)输入数字,
追答
代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 15 Then
Target.Offset(0, -3) = Val(Target.Value)
If Application.WorksheetFunction.CountIf(Sheets("Sheet2").Range("A:A"), Target.Offset(0, -3)) > 0 Then
r = Sheets("Sheet2").Range("A:A").Find(Target.Offset(0, -3).Value).Row
Target.Offset(0, -11).Resize(1, 5) = Sheets("Sheet2").Range("B" & r & ":F" & r).Value
Else
Target.Offset(0, -11) = "未查询到"
End If
End If
End Sub
展开全部
这个可以,用脚本来执行
你的意思是说在sheet1的L列中输入数据,按这个数字在sheet2中查找相应的数据(多行还是只有一行?)把它放到sheet1中去。如果未找到,则在sheet1的D列中显示“未查询到”是吧?
你的意思是说在sheet1的L列中输入数据,按这个数字在sheet2中查找相应的数据(多行还是只有一行?)把它放到sheet1中去。如果未找到,则在sheet1的D列中显示“未查询到”是吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将表格发过来试试。
更多追问追答
追问
非常抱歉,问一下老师表格怎样才能发过来
追答
本人头像上就是联系方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个需要VBA吗?
直接 VLOOKUP 或者 Index 函数不就搞定了?
直接 VLOOKUP 或者 Index 函数不就搞定了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询