繁体   English   中英

将多个 Excel 工作簿合并为一个包含多张工作表的工作簿

[英]Combine Multiple Excel Workbooks into one Workbook with multiple sheets

我有大约 70 个不同的 excel 文件,需要将它们合并到一个主工作簿中。 我希望每个 excel 文件在主工作簿中都有自己的工作表。 主工作簿中生成的工作表的名称无关紧要。

我从另一个网站上检索了此代码,但无法满足我的需要。 这段代码规定所有要合并的文件都在同一个目录下。 我把它们放在“C:\\Users\\josiahh\\Desktop\\cf”

下面是现在的代码

Sub GetSheets()
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xls")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub

这是经过测试并按预期工作的。 您将明智地使用Option Explicit并在将来适当地声明您的变量,尽管这不会导致您的代码出现任何问题。

如上面的评论所示,可能的失败是您传递给Dir函数的参数具有不必要的限制性:

=Dir(path & "*.xls")将只查找以“.xls”结尾的文件,不会考虑较新的文件格式。 要解决这个问题,请执行=Dir(path & "*.xls*")

代码如下:

Option Explicit
Const path As String = "C:\Users\dt\Desktop\dt kte\"
Sub GetSheets()
Dim FileName As String
Dim wb As Workbook
Dim sheet As Worksheet

FileName = Dir(path & "*.xls*")
Do While FileName <> ""
    Set wb = Workbooks.Open(FileName:=path & FileName, ReadOnly:=True)
    For Each sheet In wb.Sheets
        sheet.Copy After:=ThisWorkbook.Sheets(1)
    Next sheet
    wb.Close
    FileName = Dir()
Loop
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM