将多个Excel工作簿合并到一个具有多个工作表的工作簿中
我有大约70个不同的Excel文件需要合并到一个主工作簿中。我希望每个excel文件在主工作簿中都有自己的工作表。主工作簿中生成的工作表名称无关紧要。将多个Excel工作簿合并到一个具有多个工作表的工作簿中
我从另一个网站上检索到这个代码,但不能使它适合我的需要。该代码规定所有要组合的文件都位于同一个目录中。我让他们在这里位于“C:\用户\ josiahh \桌面\ 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
谢谢你的回答,但它仍然没有工作。它看起来不像你改变代码以外的任何其他显式选项? – 2015-01-26 23:22:04
我确实改变了一些东西,实际上我的代码和你的代码是完全不同的,因为我已经声明了我使用Option Explicit的变量,我添加了一个工作簿变量。请按照我的方式完全复制代码 – 2015-01-26 23:24:04
感谢您的代码。我必须在我的文件名后添加一个\以使其起作用。非常感激。 – 2015-01-26 23:39:46
*不能使它工作* 2015-01-26 23:05:18
它不会导入任何内容。我将运行宏并且什么都不会发生。 – 2015-01-26 23:06:13
你有没有采取*任何*步骤来自行调试? – 2015-01-26 23:08:22