我在一个文件夹中有30个xlsx文件,我希望将所有文件的第一张合并到一个新工作簿。问题是我不希望宏将值复制粘贴到新主表的同一张表中,就像Ron的excel合并工具那样。我想要一个宏在主文件上创建新的30张纸并从源文件中复制数据。我希望将新添加的工作表重命名为源文件名。我在论坛上搜索了几个小时,找到了下面的代码。除了工作表重命名之外,这很有效。有人可以查看代码,请帮我将代码表重命名部分添加到代码中吗?
Sub Merge2MultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFileName As String
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "C:\Jude" ' change to suit
Set wbDst = Workbooks.Add(xlWBATWorksheet)
strFileName = Dir(MyPath & "\*.xlsx", vbNormal)
If Len(strFileName) = 0 Then Exit Sub
Do Until strFileName = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFileName)
Set wsSrc = wbSrc.Worksheets(1)
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbSrc.Close False
strFileName = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbDst.Worksheets(wbDst.Worksheets.Count).Name = strFileName
如果要包含路径,则需要删除反斜杠“\”和任何其他无效的工作表名称字符。
确保名称不包含以下任何字符: \ /? * [或]