excel - 将多个 Excel 工作簿合并为一个主工作簿
问题描述
正如上面标题中提到的。我一直在寻找方法。我尝试过使用 VB 脚本将 excel 工作簿合并为一个 excel 工作簿的方法。但是,在我编写脚本时,没有迹象表明将所有工作簿都编译到主工作簿中。
这是我完成的 VB 脚本:
Sub GetSheets()
Path = "C:\Users\..."
Filename = Dir(Path & ".xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=This.Workbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
解决方案
当您打开工作簿时,它会成为活动工作簿。
Sub GetSheets()
Path = "C:\Users\..."
Filename = Dir(Path & "*.xlsx")
Dim Wb As Workbook
Dim Wb0 As Workbook: Set Wb0 = ActiveWorkbook
Dim Sh As Worksheet
Do While Filename <> ""
Set Wb = Workbooks.Open(Path & Filename)
For Each Sh In Wb.Sheets
Sh.Copy After:=Wb0.Sheets(Wb0.Sheets.Count)
Next Sh
Wb.Saved = True
Wb.Close
Filename = Dir()
Loop
End Sub
推荐阅读
- python-3.x - JSONDecodeError:期望值:翻译文本时的第 1 行第 1 列(字符 0)
- python - 将每个 x 和 y 分开的点数据集转换为点列表
- selenium - 如何使用 Selenium/TestNG/Maven 运行单个测试用例(方法)而不是整个测试套件(类)
- python - threading Timer - 使用计时器'sys.exit'主线程
- activemq - 如何通过消息 ID 从 ActiveMQ 代理接收消息?
- kubernetes-helm - 如何从 Helm3 降级到 Helm2?
- php - 如何获取 php 和 mysql 中的数据库列表?
- c - 在 C 中使用 while(scanf) 时出现代码块错误
- python - 如何解决或跳过我们得到的列的特定行> str.findall中的“float object is not iterable”
- c# - GZipStream 在 .NET Core 2.1 上解压缩失败