更新时间:2023-02-02 13:11:38
以下是您可以使用的宏:
Here is a macro you can use:
Sub CombineWorkbooks()
Dim strFolder As String
Dim strFile As String
Dim strSheet As String
Dim wbkS As Workbook
Dim wbkT As Workbook
On Error GoTo ErrHandler
使用Application.FileDialog(4)
如果。显示则为
strFolder = .SelectedItems(1)& " \"
否则为
发出哔哔声b
退出Sub¥
结束如果是
结束与$
Application.ScreenUpdating = False
Application.Cursor = xlWait
Application.DisplayAlerts = False
设置wbkT = Workbooks.Add(xlWBATWorksheet)
strFile = Dir(strFolder&" * .xls *")
做strFile<> ""
设置wbkS = Workbooks.Open(strFolder& strFile)
wbkS.Worksheets(1).Copy After:= wbkT.Worksheets(wbkT.Worksheets.Count)
strSheet = wbkS.Name
strSheet = Left(strSheet,InStrRev(strSheet,"。") - 1)
wbkT.Worksheets(wbkT.Worksheets.Count).Name = strSheet
wbkS.Close SaveChanges:= False
strFile = Dir
循环
wbkT.Worksheets(1)。删除
ExitHandler:
Application.DisplayAlerts = True
Application.Cursor = xlDefault
Application.ScreenUpdating = True
退出Sub¥
ErrHandler:
MsgBox Err.Description,vbExclamation
恢复ExitHandler
End Sub
Sub CombineWorkbooks()
Dim strFolder As String
Dim strFile As String
Dim strSheet As String
Dim wbkS As Workbook
Dim wbkT As Workbook
On Error GoTo ErrHandler
With Application.FileDialog(4)
If .Show Then
strFolder = .SelectedItems(1) & "\"
Else
Beep
Exit Sub
End If
End With
Application.ScreenUpdating = False
Application.Cursor = xlWait
Application.DisplayAlerts = False
Set wbkT = Workbooks.Add(xlWBATWorksheet)
strFile = Dir(strFolder & "*.xls*")
Do While strFile <> ""
Set wbkS = Workbooks.Open(strFolder & strFile)
wbkS.Worksheets(1).Copy After:=wbkT.Worksheets(wbkT.Worksheets.Count)
strSheet = wbkS.Name
strSheet = Left(strSheet, InStrRev(strSheet, ".") - 1)
wbkT.Worksheets(wbkT.Worksheets.Count).Name = strSheet
wbkS.Close SaveChanges:=False
strFile = Dir
Loop
wbkT.Worksheets(1).Delete
ExitHandler:
Application.DisplayAlerts = True
Application.Cursor = xlDefault
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End Sub