【VBA案例011】合并工作表

  1. 方法一:复制粘贴
  2. 方法二:数组

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

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

它就是:合并工作表。

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

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

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

方法一:复制粘贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

方法二:数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

原始链接


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com

文章标题:【VBA案例011】合并工作表

字数:309

本文作者:Rich Fan

发布时间:2023-10-23, 00:00:00

最后更新:2024-02-27, 08:17:39

原始链接:http://fanrich.github.io/2023/10/22/VBA/VBA%E6%A1%88%E5%88%97/%E3%80%90VBA%E6%A1%88%E4%BE%8B011%E3%80%91%E5%90%88%E5%B9%B6%E5%B7%A5%E4%BD%9C%E8%A1%A8/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。