【VBA案例011】合并工作表
    
    
    
        
            发布时间 : 
        
    
    
        
        字数:309
        
        
        
            阅读 :
                
            
        
        
        
    
    
    
    
    
      
        大家好!终于放假了,知了祝大家双节快乐!~
今天分享的案例非常的经典,它让我首次见识了VBA的魅力。也是从那会儿开始,命运的齿轮开始转动,走上了学习VBA的道路。
它就是:合并工作表。
问题很简单:就是把一个工作簿里的所有sheet合并到一个总表里边。
如下图:将 4个班级的信息合并。

以下是VBA代码(长按复制,可向右托动),详细解析请看文末视频。
方法一:复制粘贴
| 12
 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
 
 | 
方法二:数组
| 12
 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