【VBA案例011】合并工作表

大家好!终于放假了,知了祝大家双节快乐!~

今天分享的案例非常的经典,它让我首次见识了VBA的魅力。也是从那会儿开始,命运的齿轮开始转动,走上了学习VBA的道路。

它就是:合并工作表。

问题很简单:就是把一个工作簿里的所有sheet合并到一个总表里边。

如下图:将 4个班级的信息合并。

以下是VBA代码(长按复制,可向右托动),详细解析请看文末视频。

方法一:复制粘贴#

Sub 复制粘贴()

    Dim sht As Worksheet
    Dim zongSht As Worksheet

    Set zongSht = Worksheets("总表")

    Dim rowsCount, zongRows
    For Each sht In Worksheets
        If sht.Name <> "总表" Then
            With sht
                rowsCount = .[a65536].End(3).Row
                zongRows = zongSht.[a65536].End(3).Row + 1
                .Range("a2:d" & rowsCount).Copy zongSht.Range("a" & zongRows)
            End With
        End If
    Next

End Sub

方法二:数组#

Sub 数组()

    Dim sht As Worksheet
    Dim zongSht As Worksheet

    Set zongSht = Worksheets("总表")

    Dim rowsCount, zongRows
    Dim tmpAr
    For Each sht In Worksheets
        If sht.Name <> "总表" Then
            With sht
                rowsCount = .[a65536].End(3).Row
                zongRows = zongSht.[a65536].End(3).Row + 1
                tmpAr = .Range("a2:d" & rowsCount)
                zongSht.Range("a" & zongRows).Resize(UBound(tmpAr), UBound(tmpAr, 2)) = tmpAr
            End With
        End If
    Next

End Sub

原始链接