[教學] 使用 Visual Basic for Applications (VBA) 將Excel不同分頁轉成多個CSV與TSV檔案

之前有已經有教學如何將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旁邊就會產生轉出的檔案了

發表迴響