VBA应用—合并选择的excel文件下所有的工作簿

合并选择的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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容