之前有已經有教學如何將Excel存成CSV或是TSV檔案,可是假如遇到有很多個sheet時,該方式就會變成每頁都要另存新檔一次會非常的麻煩,而 Microsoft Office 實際上有內建 Visual Basic for Applications (VBA) 給開發者方便的操作 Office 檔案,本篇教學如何使用 VBA 的程式碼一次將多個 sheet 轉存成多個CSV或TSV檔案。
啟用[開發人員]選項
要使用VBA的功能,需要先要開啟[開發人員]的選項
Windows 開啟開發人員方法
首先點選清單的檔案
接著點 [選項]
並且切換到 [自訂功能區]
在自訂功能區下勾選 [開發人員] 並且確定
macOS 開啟開發人員方法
點 Excel 中的 [喜好設定]
之後點 [檢視]
勾選 [開發人員索引標籤]
接著頁面上面會就出現 [開發人員] 的選項
執行腳本分割檔案
開選後頁面上方就會出現 [開發人員] 的選單
接著開啟要轉換的Excel檔案
切到 [開發人員] 選單點選 Visual Basic
接著點選清單頁的檢視 -> 程式碼
這時會跳出程式碼編輯視窗
然後在程式碼區貼上下面的程式碼 (依照TSV與CSV自行選擇)
存成TSV的:
Sub SaveSheetToFiles() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Worksheets(ws.Name).Activate ActiveWorkbook.SaveAs Filename:= _ ActiveWorkbook.Path & ws.Name & ".txt", FileFormat:=xlText, _ CreateBackup:=False Next End Sub
存成CSV的
Sub SaveSheetToFiles() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Worksheets(ws.Name).Activate ActiveWorkbook.SaveAs Filename:= _ ActiveWorkbook.Path & ws.Name & ".csv", FileFormat:=xlCSV, _ CreateBackup:=False Next End Sub
接著點擊上方的執行按鈕
執行完畢後Excel旁邊就會產生轉出的檔案了