excel批量轉換為CSV格式,xls批量匯出csv格式?

有多個檔案excel檔案需要匯出為CSV格式時,一個個匯出非常麻煩。有些人想到批量轉換工具,然而工具沒找到,倒是下了一堆病毒。其他excel本身就可以實現,只要編輯一段VBS程式碼就可以輕鬆實現自動批量轉換。

工具/原料

excel 2013

方法/步驟

首選我們把需要匯出為CVS的Excel檔案整理集中到一個資料夾中。然後新建一個資料夾用來儲存CSV檔案的。支援Xlsx、xls格式。

excel批量轉換為CSV格式,xls批量匯出csv格式

新建一個EXCEL表格,開啟後,點選選單欄上的“開發工具”;功能區下點選開啟Visual Basic。

excel批量轉換為CSV格式,xls批量匯出csv格式

如果選單欄上沒有開發工具,則在選項中新增。點選檔案,彈出選單選擇選項。在EXCEL選項中,點選自定義功能區,右邊勾選開發工具,然後點選確定。這樣開發工具就會顯示在選單欄上。

excel批量轉換為CSV格式,xls批量匯出csv格式

在左側工程資源管理器中雙擊Sheet1 (Sheet1)開啟程式碼視窗。工程資源管理器如果沒有顯示,則按ctrl+R就可以顯示了。

excel批量轉換為CSV格式,xls批量匯出csv格式

在程式碼視窗中輸入下面程式碼,其中有兩行(圖片紅框位置)需要自己修改為實際檔案來源路徑和儲存路徑。就是開頭說到的那兩個資料夾位置。後面再解釋。

Sub SaveToCSVs()

Dim fDir As String

Dim wB As Workbook

Dim wS As Worksheet

Dim fPath As String

Dim sPath As String

fPath = "C:\Users\qiany\Desktop\檔案\"

sPath = "C:\Users\qiany\Desktop\csv儲存位置\"

fDir = Dir(fPath)

Do While (fDir <> "")

If Right(fDir, 4) = ".xls" Or Right(fDir, 5) = ".xlsx" Then

On Error Resume Next

Set wB = Workbooks.Open(fPath & fDir)

'MsgBox (wB.Name)

For Each wS In wB.Sheets

wS.SaveAs sPath & wB.Name & ".csv", xlCSV

Next wS

wB.Close False

Set wB = Nothing

End If

fDir = Dir

On Error GoTo 0

Loop

End Sub

excel批量轉換為CSV格式,xls批量匯出csv格式

程式碼中的fPath = "C:\Users\qiany\Desktop\檔案\" -定義為需要轉換成CSV的Excel原始檔。

sPath = "C:\Users\qiany\Desktop\csv儲存位置\" -定義為轉換後的CSV檔案儲存位置。

這兩個位置需要自己按實際修改。特別注意:路徑需要以\結尾。

寫好程式碼後開始執行。點選選單欄上的執行,選擇執行子過程/使用者窗體。

excel批量轉換為CSV格式,xls批量匯出csv格式

彈出一個對話方塊,點選執行。

excel批量轉換為CSV格式,xls批量匯出csv格式

接下來就開始進入轉換過程,在這過程中會多個EXCEL窗體自動顯示再自動關閉,取決於多少個Excel檔案。

完成後我們開啟剛才設定的儲存資料夾,就可以看到轉換後的CSV檔案。

excel批量轉換為CSV格式,xls批量匯出csv格式

在步驟9的圖片中CSV的檔案明顯多於剛才步驟1中的檔案,為什麼會這樣呢?

因為原來的Excel的單個工作簿中有多個工作表,所以才會出現這麼多的CSV檔案。

簡單的說,就是所有工作簿中的每個工作表都儲存為一個CSV檔案。

excel批量轉換為CSV格式,xls批量匯出csv格式

注意事項

fPath = "原始檔位置\"

sPath = "csv儲存位置\"

路徑後面都要以\結尾,切記!

檔案, 格式, 工具, 程式碼, excel,
相關問題答案