lisp遍历表中所有顶点_Excel vba 实例(17) 遍历多个工作簿并提取内容到总表

8dac3f0209cdbb8f608db299b38b3d7e.gif
问题

上次介绍了一个vba实例:Excel vba 实例(16) - 按指定字段分类批量提取内容

这个例子是把总表里面的数据根据单号批量提取相关内容后,分别保存成单独的文件。

有「拆」表格,自然就有「合并」表格,也就是上面实例(16)的逆操作,那么今天的例子就来说说如何用vba遍历多个工作簿并提取内容到总表。

举例如下:

现在有两张格式一样但内容不同的表,设为表一和表二,如下图

6dbfcc9613d245876f6cf819ce8be68e.png

24aac52e6cfda4e30e97133b943a3222.png

其中表二里面有两个sheet。

我们需要把这两个表中的三个sheet按照单号这个字段,统一提取内容到一个表格当中去,效果如下图:

03494efe4743ac9cf6b9f6678451d9ef.png

思路

遍历文件夹里面所有的excel文件,如果你里面有多个sheet,每个sheet也都遍历一遍,然后单号以及其他内容所在的单元格依次复制到总表当中即可。

核心代码如下:

While X <= UBound(FileOpen) '遍历所有的excel文件
Set wb = Workbooks.Open(FileOpen(X)) '打开工作簿
        With ThisWorkbook.Sheets("sheet1") '操作当前文件下的sheet1表
            For Each sht In wb.Sheets '遍历目标工作簿里的工作表
                Do While sht.Range("A" & hang) <> "" '逐行提取内容
                    sht.Range("B2").Copy
                    .Range("A" & flag).PasteSpecial xlPasteValues
                    sht.Range("A" & hang & ":F" & hang).Copy .Range("B" & flag)
                    hang = hang + 1
                    flag = flag + 1
                Loop
                hang = 5
            Next
            wb.Close False '依次关闭目标工作簿
        End With 
X = X + 1
Wend
End Sub
效果演示

95284915d8960cb53937e9978942da85.gif

如果需要源文件的话,后台回复「遍历提取」即可。

需要说明一下:实例的代码只是针对根据上面表格的字段设计的,如果你的字段数量不同,可能会出现错误

据了解,做销售、零售、贸易等行业会用到销售单,订货单,采购单等表格,根据业务的情况会有上面的一些统计需求,这两个实例就是在帮多个小伙伴解决问题的时候做的,用vba(16)、(17)两个实例可以很方便快捷的实现效果。

如果还有其他需要定制化的功能,也可以联系我。

其他VBA实例,可以在公号里「精华整理」-「VBA实例」进行查看。

欢迎交流!

微信公众号:永恒君的百宝箱

个人博客:www.yhjbox.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值