快好知 kuaihz

Excel | VBA(7)--根据订单号跨多工作表查...

一起来学office,提高办公技能

问题情境

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 | 让“宏”来替你做重复动作

-----------------------------------

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:订单号  订单号词条  根据  根据词条  工作  工作词条  Excel  Excel词条  VBA  VBA词条  
办公

 身份证照片如何打印成复印件

手机拍摄的身份证怎么打印出来作为复印件呢?方法/步骤1:首先,把手机拍的身份证上传到电脑上方法/步骤2:在电脑上后,点击打开ps。如图方法/步骤3:然后打开ps...(展开)

办公

 PPT图文排版太单调?1分钟学会...

有很多小伙伴不管是在学校里还是在工作中,经常需要制作PPT,但是有很多小伙伴觉得自己做出来的PPT总是没有别人做的好看,对比起来差距有点大……别担心,今天小编将...(展开)