Excel | VBA帮你合并工作薄或工作表,收藏备用

【Excel | VBA帮你合并工作薄或工作表,收藏备用】合并工作簿与合并工作表 , 是Excel数据处理永恒的话题 。原来韩老师讲过用SQL语句,还讲过,今天给大家两组代码,每次需要合并工作簿与或是工作表时,复制过来使用就好了 。

合并工作簿

代码如下(代码横屏观看效果更好):
Sub 合并工作薄()Dim FileOpen'定义打开文件变量Dim i As Integer'定义打开文件个数变量Application.ScreenUpdating = False'关闭屏幕更新,避免合并时屏幕闪烁FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(.xlsx),.xlsx", MultiSelect:=True)'打开文件类型为.xlsx,并可以打开多个i = 1Do While i <= UBound(FileOpen)Workbooks.Open Filename:=FileOpen(i)Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)'将需要合并的工作薄中工作表合并到最后一个工作表i = i1LoopApplication.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 WorksheetsIf sht.Name <> Sheet1.Name ThenWith shtirow = .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).Row1)'当前工作表除第一行以外的数据复制到汇总工作表End IfEnd WithEnd IfNextApplication.ScreenUpdating = True'打开屏幕更新End Sub
如下图:
Excel | VBA帮你合并工作薄或工作表,收藏备用

效果如下:
Excel | VBA帮你合并工作薄或工作表,收藏备用

不要怕VBA,你可以从模仿开始写起的,写多了,见识多了,你也会了 。当然 , 如果有编辑的基础的,学的快一些,如果没有编辑基础的朋友 , 那要先去了解变量、语句、算法、对象的概念了 。
------------------------------------------
--------------------------------------------
(此处已添加圈子卡片,请到今日头条客户端查看)

相关经验推荐