合并选择的excel文件下所有的工作簿
Sub test()
Dim str As String
Dim wb As Workbook
Dim Sht, sht1 As Worksheet
Dim i, j
Set sht1 = ActiveSheet
' 将活动工作簿写入sht1,不要忘记用set写入
str = Application.GetOpenFilename
' 将所选的文件名写入str,此处为单选
If str <> "False" Then
' 如果str不是错误也就是如果用户选择了文件
Set wb = Workbooks.Open(str)
' 将选择的工作簿打开写入到wb 里
For Each Sht In wb.Sheets
’ 循环选择的工作簿里的所有工作表
Sht.Range("a1:z1").Copy sht1.Range("a1")
' 复制到第一行到sht1里
i = Sht.Range("a65536").End(xlUp).Row
' i为循环到的这张表有内容的最后一行
j = sht1.Range("a65536").End(xlUp).Row
' j 为sht1有内容的最后一行
Sht.Range("a2:z" & i).Copy sht1.Range("a" & j + 1)
' 循环到的这张表第二行到下面有文字的所有行都复制到sht1里的有文字的最后一行的下一行
Next
wb.Close
' 关闭选择的表
End If
End Sub