分享

每日Excel分享(VBA)| 数据合并?其实很简单(三)

 L罗乐 2017-12-11

导读

需要合并的工作簿有5个,每个工作簿中都有多个工作表,所有工作表的表头标题都是一致的。

打开VBE编辑器新建模块并添加VBA代码,如下图:

操作方法:

按ALT F11组合键打开VBE编辑器,选中任意一个工作表名点击右键,然后选择“插入——模块”,在模块中粘贴以下代码:

Sub 合并工作簿()

    Dim k$, i%, wk As Workbook, sh As Worksheet, arr

    Application.ScreenUpdating = False

   Sheets('合并').Range('A2:E65536').ClearContents

   Set kw = ThisWorkbook

    k = Dir(ThisWorkbook.Path & '\*.xls')

    Do While k <> ''

        If k <> kw.Name Then

            Set wk = Workbooks.Open(ThisWorkbook.Path & '\' & k)

            For Each sh In Worksheets

          sh.Copy after:=ThisWorkbook.Sheets('合并')

          Next sh

            wk.Close False

        End If

        k = Dir

    Loop

    Call 合并工作表

End Sub

Sub 合并工作表()

Dim sh As Worksheet

Dim i As Integer

For Each sh In Worksheets

If sh.Name <> '合并' Then

i = sh.UsedRange.Rows.Count

Sheets('合并').Columns(1).Cells(Sheets('合并').Columns(1).Cells.Count). _

End(xlUp).Offset(1).Resize(i - 1, 7) = sh.Range('a2').Resize(i - 1, 7).Value

End If

Next

Application.ScreenUpdating = True

Sheets('合并').Select

End Sub


添加一个用于执行VBA代码的按钮,并指定要执行的代码


最终效果如下:

看到这里,你是否会觉得合并数据很强大呢?其实这还只是最基本的数据合并,如果有N个工作簿,每个工作簿有多个工作表,其中都有一个工作表名称是相同的,我们只需要合并那个名称相同的工作表(合并所有工作簿中指定名称的工作表),你有想过应该怎么做吗?你想了解学习更多关于数据合并的知识吗?


第294天的坚持,离365天的小目标还剩71天

我的Excel,天天与你不见不散

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多