【发布时间】:2014-05-24 16:11:42
【问题描述】:
我在一个文件夹中有 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
【问题讨论】:
-
“此问题未显示任何研究成果”