vba第二十四課
工作表拆分
工作表拆分是指把工作薄內的單個或多個工作表獨立成一個工作薄,此功能還是比較實用的。
例:
Sub 工作表拆分()
Dim wk As Workbook, a!, b$
Application.DisplayAlerts = False
For a = 1 To Sheets.Count
mypath = ThisWorkbook.Path
b = mypath & "\" & Sheets(a).Name
Set wk = Workbooks.Add
Workbooks("24.xlsm").Sheets(a).copy ActiveWorkbook.Sheets(1)
wk.SaveAs b
wk.Close
Next
Application.DisplayAlerts = True
End Sub
注釋:
mypath = ThisWorkbook.Path
當前代碼所在的工作薄的路徑
b = mypath & "\" & Sheets(a).Name
獲得工作薄中工作表名和路徑並賦值給「B」
Set wk = Workbooks.Add
新建一個工作薄
Workbooks("24.xlsm").Sheets(a).copy ActiveWorkbook.Sheets(1)
複製工作薄名為24.xlsm中的第a個工作表到當前活動工作薄第一個工作表的前面
注意,當Workbooks.Add運行完後會把新建的工作薄設為當前活動的工作薄
wk.SaveAs b
把新建的工作薄另存為「b」,這就是為什麼b 等於 mypath & "\" & Sheets(a).Name,這就是為saveas代碼作鋪墊,表示存在哪裡,叫什麼名稱,否則的話會存在默認的保存位置
wk.Close
關閉工作薄
不知大家能不能理解這些代碼,在運行時可以單步運行,並注意觀意本地窗口變量的值的變化,試著寫一下多運行幾次就可以慢慢理解
如果覺得有幫助的話記得關注和點讚,有不懂的地方可以私信我,需要表格素材的也可私信給我轉發給你們。
如果各位在實際工作中遇見excel常規方法無法解決的或操作比較複雜的報表可以私信我,可以免費編寫代碼來解決!