VBA——合并工作表及工作表单独保存的功能

沿用上一篇关于拆分excel工作表的文章的引子,本文分享下多个工作表合并的VBA功能。案例仍使用上篇文章的例子。已知有BS、HR等多个部门,分别存放在独立的以部门命名的工作表中,现需要将多个部门的工作表合并为包含所有部门的一张工作表。

实现代码如下:

Sub MergeToOneSheet()
'取表头
Range("A1:D1") = Sheets(2).Range("A1:D1").Value
'计算工作表数量
x = Sheets.Count
'从第二个工作表循环
'第一个工作表是新建待合并总表
For i = 2 To x
'第i个工作表最后一个非空白行
rn1 = Sheets(i).Range("A30").End(xlUp).Row
'待合并完成总表的最后一个非空白行
rn2 = Range("A30").End(xlUp).Row
'第i个表第二行到第rn1行拷贝
Sheets(i).Range("A2:D" & rn1).Copy _
'粘贴至总表
Range ("A" & rn2 + 1)
Next
End Sub

有时候需要将工作表单独保存,在手工条件下,一个一个按照制作副本然后另存,是酱紫的:

VBA——合并工作表及工作表单独保存的功能_第1张图片

表多的时候,一个一个操作再保存会很繁琐,但是VBA可以很轻松的实现此功能。依旧按照之前的文档为例,代码如下:

Public Sub chaifen()
Dim sht As Worksheet
Dim mb As Workbook
Set mb = ActiveWorkbook
'循环工作表
For Each sht In mb.Sheets
'拷贝工作表
sht.Copy
'独立保存位置在桌面"example"文件夹
ActiveWorkbook.SaveAs Filename:="C:\Users\xj\Desktop\example" _
& "\" & sht.Name, FileFormat:=xlNormal
ActiveWorkbook.Close
Next
End Sub

点看桌面“example”文件,所有工作表已经完成独立保存,文件名称也都已经以工作表的名称来命名。

      欢迎大家关注本人微信公众号,公众号将持续更新python,tableau,SQL等数据分析的文章。

    VBA——合并工作表及工作表单独保存的功能_第2张图片

ID: DataDreamInitiate

      公众号名称数据分析X小硕

你可能感兴趣的:(VBA——合并工作表及工作表单独保存的功能)