Sub CopySheetsFromMultipleFiles()
Dim SourceWb As Workbook
Dim TargetWb As Workbook
Dim ws As Worksheet
Dim fileNames As Variant
Dim i As Long
' Let user pick multiple files
fileNames = [Link]( _
FileFilter:="Excel Files (*.xlsx), *.xlsx", _
Title:="Select workbooks to merge", _
MultiSelect:=True)
' Exit if no file is selected
If VarType(fileNames) = vbBoolean Then Exit Sub
Set TargetWb = ThisWorkbook
' Loop through each selected file
For i = LBound(fileNames) To UBound(fileNames)
Set SourceWb = [Link](fileNames(i))
' Copy each sheet
For Each ws In [Link]
[Link] After:=[Link]([Link])
Next ws
[Link] SaveChanges:=False
Next i
MsgBox " All sheets from selected files have been merged."
End Sub