
接上一篇文章 『 一個工作簿中到底可以建多少個Sheet?』,我們用數(shù)據(jù)透視表中的報表篩選器可以快速批量新建工作表,這次介紹把工作表快速轉(zhuǎn)換成工作簿的方法。
工作簿本質(zhì)是一個文件,如果要把工作表變成工作簿其實就是要生成出新的Excel文件出來,Office中并沒有生成文件的函數(shù)公式,也沒有可以實現(xiàn)該需求的配套功能。但是,這都不是問題,因為Office支持"宏",【也叫VBA】,它可以幫助我們完成用函數(shù)公式實現(xiàn)不了的任務,因為它能很好的支持辦公自動化,讓用戶能自行對功能進行的靈活、便捷的擴展以及個性化定制,這也是Office能被全世界用戶這么認可的原因之一。
一、操作步驟
1.打開需要轉(zhuǎn)換的工作簿。
2.右鍵點擊其中一個sheet查看代碼 或 按快捷鍵ALT+F11進入VBE界面。
3.找到左邊的工程窗口,然后鼠標右鍵,新建一個模塊。
4.把工作簿拆分工作表代碼貼入到模塊中。
5.按F5或點擊工具欄里面的類似播放按鈕,運行代碼。
6.完成拆分。
二、演示效果

三、VBA代碼
Sub WorkbookToSheet()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For i = 1 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(i).Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & "/" & ThisWorkbook.Sheets(i).Name, xlWorkbookDefault
ActiveWorkbook.Close True
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "處理完成。", , "提醒"
End Sub
四、代碼解釋與說明
Sub WorkbookToSheet()
'關(guān)閉系統(tǒng)警告和消息提示,相同工作簿存在時會直接覆蓋保存。
Application.DisplayAlerts = False
'關(guān)閉屏幕刷新,防止出現(xiàn)閃動
Application.ScreenUpdating = False
'遍歷當前工作簿中的 第一個sheet 到 最后一個sheet 【ThisWorkbook.Sheets.Count=當前工作簿中的工作表的個數(shù)】
For i = 1 To ThisWorkbook.Sheets.Count
'復制當前工作簿中的第i個工作表
ThisWorkbook.Sheets(i).Copy
'工作表復制后,會成為活動工作薄,把活動的工作簿另存到當前工作簿的相同路徑下,新的工作簿名字用被復制的工作表的名字,并采用默認Excel文件格式
ActiveWorkbook.SaveAs ThisWorkbook.Path & "/" & ThisWorkbook.Sheets(i).Name, xlWorkbookDefault
'關(guān)閉工作薄并保存
ActiveWorkbook.Close True
Next
'前面強制關(guān)閉了屏幕刷新,程序結(jié)束前要恢復,否則會影響到平時的正常使用。
Application.ScreenUpdating = True
'前面強制關(guān)閉了警告和消息提示,程序結(jié)束前要恢復,否則會影響到平時的正常使用。
Application.DisplayAlerts = True
'提示已經(jīng)處理完成。
MsgBox "處理完成。", , "提醒"
End Sub
關(guān)注公眾號,回復"拆分",免費獲取拆分工具
