Excel | VBA--根据订单号跨多工作表查询数据

问题情景

Excel跨多个工作表查询数据,用公式不好统计,尤其是遇到不断增加工作表的情况,比如:
Excel | VBA--根据订单号跨多工作表查询数据

上图中,要根据订货单号选择相应的货名、数量、单位、单价等信息 。而这些订货单号对应货名等分布在不同的9个工作表中,而且工作表还在不断增加 。
在这种情况下,公式显得有些苍白无力,就需要用VBA来完成跨表查询 。实现效果如下:
Excel | VBA--根据订单号跨多工作表查询数据

VBA实现

在代码窗口中输入以下代码:
Sub 多表查询()Dim i%, k%Dim irow%, icol%Dim sht As WorksheetRange("a5:e200").Clear'清除a5到e200区域中的数据,此处200可根据数据行多少改变k = 1Application.ScreenUpdating = FalseFor Each sht In WorksheetsIf sht.Name <> ActiveSheet.Name Then'当工作表不是当前工作时,执行以下语句With shtirow = .Cells(.Rows.Count, 1).End(xlUp).Row'当前工作表数据行数icol = .Cells(1, .Columns.Count).End(xlToLeft).Column'当前工作表数据列数For i = 1 To irowIf .Cells(i, 1).Value = https://www.itzhengshu.com/excel/Sheets(1).Cells(2, 5).Value Then'当前工作表是第一列i行数据与sheet1工作表E2单元格数值相同时.Cells(i, 2).Resize(1, icol).Copy Sheets(1).Cells(4k, 1)'将第i行数据复制到sheet1工作表第4 k行k = k1End IfNext iEnd WithEnd IfNextApplication.ScreenUpdating = TrueEnd Sub
【Excel | VBA--根据订单号跨多工作表查询数据】如下图:
Excel | VBA--根据订单号跨多工作表查询数据

如果不知道“按订货单号查询”按钮怎么设置,可参考文章
------------------------------------------
-----------------------------------------
加入圈子,一起学习office吧!
(此处已添加圈子卡片,请到今日头条客户端查看)

相关经验推荐