1. 程式人生 > >VBA——合併工作表及工作表單獨儲存的功能

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可以很輕鬆的實現此功能。依舊按照之前的文件為例,程式碼如下:

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等資料分析的文章。

   

ID: DataDreamInitiate

      公眾號名稱資料分析X小碩