设置主页 | 收藏本站 Excel学习网-公益型的EXCEL在线学习网站,助您轻松办公!

Excel VBA——合并工作簿与合并工作表

2020年04月16日 15:52 发布来源:Excel学习网

合并工作簿与合并工作表,是Excel数据处理永恒的话题。原来韩老师讲过用SQL语句,还讲过Excel零基础也会合并多工作表,今天给大家两组代码,每次需要合并工作簿与或是工作表时,复制过来使用就好了。

代码如下(代码横屏观看效果更好):

Sub 合并工作薄()
Dim FileOpen          '定义打开文件变量
Dim i As Integer      '定义打开文件个数变量
Application.ScreenUpdating = False       '关闭屏幕更新,避免合并时屏幕闪烁
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(.xlsx),.xlsx", MultiSelect:=True)  '打开文件类型为.xlsx,并可以打开多个
i = 1
Do While i <= UBound(FileOpen)
    Workbooks.Open Filename:=FileOpen(i)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)           '将需要合并的工作薄中工作表合并到最后一个工作表
    i = i + 1
Loop
Application.ScreenUpdating = True     '打开屏幕更新
MsgBox "已完成合并"                   '合并完成并提示
End Sub

代码窗口如下:

Excel | VBA——合并工作簿与合并工作表

 

效果如下:

Excel | VBA——合并工作簿与合并工作表

 

合并工作表

在VBA窗口中输入以下代码(代码横屏观看效果更好):

Sub 合并工作表()
Application.ScreenUpdating = False   '关闭屏幕更新,避免合并时屏幕闪烁
Dim sht As Worksheet                 '定义工作表变量
Dim irow%, icol%                     '定义行列变量
Sheet1.UsedRange.ClearContents       '清除sheet1现有数据
For Each sht In Worksheets
    If sht.Name <> Sheet1.Name Then
        With sht
            irow = .Cells(.Rows.Count, 1).End(xlUp).Row                  '当前工作表数据行数
            icol = .Cells(1, .Columns.Count).End(xlToLeft).Column        '当前工作表数据列数
            If Sheet1.Range("a1") = "" Then
                .Range("a1").Resize(irow, icol).Copy Sheet1.Range("a1")  '当前工作表第一行复制到汇总工作表
            Else
                .Range("a2").Resize(irow - 1, icol).Copy Sheet1.Range("a" & Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row + 1)  '当前工作表除第一行以外的数据复制到汇总工作表
            End If
        End With
    End If
Next
Application.ScreenUpdating = True     '打开屏幕更新
End Sub

如下图:

Excel | VBA——合并工作簿与合并工作表

 

效果如下:

Excel | VBA——合并工作簿与合并工作表

 

不要怕VBA,你可以从模仿开始写起的,写多了,见识多了,你也会了。当然,如果有编辑的基础的,学的快一些,如果没有编辑基础的朋友,那要先去了解变量、语句、算法、对象的概念了。

原创文章如转载请注明:转载自Excel学习网 [ http://www.excelxx.com/]
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12371.html
分享到:
网站地图 | XML地图 | 免责声明 | 关于我们 | Excel学习网:优秀的EXCEL在线学习和资源分享网站。
版权所有: CopyRight © 2013-2018 www.excelcn.com All Rights Reserved.
豫ICP备12002644号