Excel2003写代码实现根据条件把Sheet2里的数据提取到Sheet1里的问题,非常感谢!

 我来答
ExcelPower
2016-12-28 · 专业Excel公式图表数据分析VBA
ExcelPower
采纳数:4495 获赞数:11859

向TA提问 私信TA
展开全部

真不明白为啥 你一直要用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
柳上寒烟
2016-12-28 · TA获得超过2148个赞
知道大有可为答主
回答量:2847
采纳率:79%
帮助的人:509万
展开全部
这个可以,用脚本来执行
你的意思是说在sheet1的L列中输入数据,按这个数字在sheet2中查找相应的数据(多行还是只有一行?)把它放到sheet1中去。如果未找到,则在sheet1的D列中显示“未查询到”是吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平阳虎01
高粉答主

2016-12-28 · 每个回答都超有意思的
知道大有可为答主
回答量:3.7万
采纳率:75%
帮助的人:8540万
展开全部
将表格发过来试试。
更多追问追答
追问
非常抱歉,问一下老师表格怎样才能发过来
追答
本人头像上就是联系方式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
骨头81
2016-12-28 · TA获得超过554个赞
知道小有建树答主
回答量:712
采纳率:0%
帮助的人:463万
展开全部
这个需要VBA吗?
直接 VLOOKUP 或者 Index 函数不就搞定了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式