Excel VBA--根据订单号跨多工作表查询数据
2020年04月16日 15:50 发布来源:Excel学习网
问题情景
Excel跨多个工作表查询数据,用公式不好统计,尤其是遇到不断增加工作表的情况,比如:
上图中,要根据订货单号选择相应的货名、数量、单位、单价等信息。而这些订货单号对应货名等分布在不同的9个工作表中,而且工作表还在不断增加。
在这种情况下,公式显得有些苍白无力,就需要用VBA来完成跨表查询。实现效果如下:
VBA实现
在代码窗口中输入以下代码:
Sub 多表查询()
Dim i%, k%
Dim irow%, icol%
Dim sht As Worksheet
Range("a5:e200").Clear '清除a5到e200区域中的数据,此处200可根据数据行多少改变
k = 1
Application.ScreenUpdating = False
For Each sht In Worksheets
If sht.Name <> ActiveSheet.Name Then '当工作表不是当前工作时,执行以下语句
With sht
irow = .Cells(.Rows.Count, 1).End(xlUp).Row '当前工作表数据行数
icol = .Cells(1, .Columns.Count).End(xlToLeft).Column '当前工作表数据列数
For i = 1 To irow
If .Cells(i, 1).Value = Sheets(1).Cells(2, 5).Value Then '当前工作表是第一列i行数据与sheet1工作表E2单元格数值相同时
.Cells(i, 2).Resize(1, icol).Copy Sheets(1).Cells(4 + k, 1) '将第i行数据复制到sheet1工作表第4+k行
k = k + 1
End If
Next i
End With
End If
Next
Application.ScreenUpdating = True
End Sub
如下图:
如果不知道“按订货单号查询”按钮怎么设置,
原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12369.html
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12369.html
相关教程:
- → Excel304 合并单元格数值不容易复制到连续区域,试试定位法
- → Excel 如何实现有下拉菜单的跨表数据汇总并查询
- → Excel VBA——一对多查询,几行代码代替复杂公式
- → Excel格式的手机端和电脑端转换方法,一键就可以实现
- → 学会这8个Excel批量操作,从此告别熬夜加班
- → 多个Excel表格合并一个表格可以操作吗?快速合并多个Excel的方法
- → Excel单元格隔行填充颜色的方法
- → Excel“SUM”求和并不像想象那样简单,常用函数之SUM实战技巧 二
- → 几种资深HR常用Excel操作技巧,能节省很多时间,
- → 有关联的切换式销售统计Excel表,非常有创意
经典Excel学习视频及教程推荐:
Excel优秀工具推荐:
小工具推荐: