"\" Then strPath = strPath & "\" ' 獲取資料夾中的第一個Excel檔案 strFile = Dir(strPath & "*.xls*") ' 循環處理找到的所有檔案 Do While strFile <> "" ' 打開源工作簿 Set wbSource = Workbooks.Open(Filename:=strPath & strFile) ' 循環每個工作表 For Each wsSource In wbSource.Sheets wsName = wsSource.Name ' 檢查工作表名稱是否存在 On Error Resume Next Set wsDest = wbDest.Sheets(wsName) On Error GoTo 0 If Not wsDest Is Nothing Then If replaceAll = False Then If MsgBox("工作表名稱"> "\" Then strPath = strPath & "\" ' 獲取資料夾中的第一個Excel檔案 strFile = Dir(strPath & "*.xls*") ' 循環處理找到的所有檔案 Do While strFile <> "" ' 打開源工作簿 Set wbSource = Workbooks.Open(Filename:=strPath & strFile) ' 循環每個工作表 For Each wsSource In wbSource.Sheets wsName = wsSource.Name ' 檢查工作表名稱是否存在 On Error Resume Next Set wsDest = wbDest.Sheets(wsName) On Error GoTo 0 If Not wsDest Is Nothing Then If replaceAll = False Then If MsgBox("工作表名稱"> "\" Then strPath = strPath & "\" ' 獲取資料夾中的第一個Excel檔案 strFile = Dir(strPath & "*.xls*") ' 循環處理找到的所有檔案 Do While strFile <> "" ' 打開源工作簿 Set wbSource = Workbooks.Open(Filename:=strPath & strFile) ' 循環每個工作表 For Each wsSource In wbSource.Sheets wsName = wsSource.Name ' 檢查工作表名稱是否存在 On Error Resume Next Set wsDest = wbDest.Sheets(wsName) On Error GoTo 0 If Not wsDest Is Nothing Then If replaceAll = False Then If MsgBox("工作表名稱">
Sub 合併工作簿中的工作表到當前活頁簿()
Dim wbDest As Workbook
Dim wsDest As Worksheet
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim strPath As String
Dim strFile As String
Dim replaceAll As Boolean
Dim wsName As String
' 設置目標活頁簿為當前活頁簿
Set wbDest = ThisWorkbook
' 指定資料夾路徑
strPath = "C:\\您的資料夾路徑\\"
' 確保路徑以反斜線結尾
If Right(strPath, 1) <> "\\" Then strPath = strPath & "\\"
' 獲取資料夾中的第一個Excel檔案
strFile = Dir(strPath & "*.xls*")
' 循環處理找到的所有檔案
Do While strFile <> ""
' 打開源工作簿
Set wbSource = Workbooks.Open(Filename:=strPath & strFile)
' 循環每個工作表
For Each wsSource In wbSource.Sheets
wsName = wsSource.Name
' 檢查工作表名稱是否存在
On Error Resume Next
Set wsDest = wbDest.Sheets(wsName)
On Error GoTo 0
If Not wsDest Is Nothing Then
If replaceAll = False Then
If MsgBox("工作表名稱 '" & wsName & "' 已存在。是否要替換它? " & _
"選擇 '是' 替換所有重複的工作表,選擇 '否' 僅替換這個。", _
vbYesNoCancel + vbQuestion, "替換工作表") = vbYes Then
replaceAll = True
ElseIf vbCancel Then
Exit Sub
End If
End If
If replaceAll = True Then
Application.DisplayAlerts = False
wsDest.Delete
Application.DisplayAlerts = True
End If
End If
' 複製工作表到目標活頁簿
wsSource.Copy After:=wbDest.Sheets(wbDest.Sheets.Count)
wbDest.Sheets(wbDest.Sheets.Count).Name = wsName
' 重置 wsDest 以供下一次檢查
Set wsDest = Nothing
Next wsSource
' 關閉源工作簿
wbSource.Close SaveChanges:=False
' 獲取下一個檔案名稱
strFile = Dir
Loop
MsgBox "所有工作表已經合併到當前活頁簿。", vbInformation
End Sub