【VBA】xlsx文件批量轉格式(txt、csv)

前言

在日常工作中大家很多時候需要把Excel格式的文件轉成txt或者csv格式的文件,比如:大家在用Python或者R語言讀取文件的時候,往往發現txt和csv格式的文件是最好讀取的,而Excel類型的文件是讀取是很麻煩的。雖然R語言裡面有很多處理Excel文件的Package(相關的包:RODBC、xlsx、openxlsx、gdata、readxl),可以讀取Excel類型文件,但是我想肯定還是txt和csv讀取數據比較簡單一些。用VBA去操作Excel是它的專長,下面給大家演示如何批量把xlsx類型文件轉成txt或者csv類型的文件。


數據準備

下面是需要處理的10份Excel文件,後綴是xlsx類型,這裡會把他們批量處理txt文件

數據處理

1)首先新建一個存儲vba腳本的xlsm文件

2)新建模塊,在模塊裡面編寫如下腳本

處理成txt類型Sub getTXT()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim i%, file As Variant, path$Dim data As Workbook這裡用GetOpenFilename彈出一個多選窗口,選中我們要轉化成csv的xlsx文件,file = Application.GetOpenFilename(MultiSelect:=True)用LBound和UBoundFor i = LBound(file) To UBound(file) Workbooks.Open Filename:=file(i) Set data = ActiveWorkbook path = data.path 這裡設置要保存在目錄下面的csv文件夾里,之後可以自己調 參考了裡面的第一種方法 On Error Resume Next VBA.MkDir (path & " xt") With data .SaveAs path & " xt" & Replace(data.Name, ".xlsx", ".txt"), xlUnicodeText .Close True End WithNext i彈出對話框表示轉化已完成,這時去相應地方的csv里查看即可MsgBox "已轉換了" & (i - 1) & "個文檔"Application.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub

3)執行上段腳本,很快就批量轉換成功,結果如下


結語

通過上面的方法可以快速將xlsx類型的文件轉成txt類型的文件,想必在後期的數據讀取方面,會輕鬆很多。另外,Application.GetOpenFilename(MultiSelect:=True)這段語法還可以實現對自己選擇的文件進行處理,這樣就可以很隨心所欲的進行類型轉換了。今天就先寫到這裡,如果各位喜歡的話,請關注微信公眾號:sanshudata_excel,謝謝品讀!

推薦閱讀:

在Excel中如何使工作簿內不同工作表單內的相同數值用條件格式篩選出來?
請教這種需求適合用Excel還是Access?
如何變成excel高手?
Excel VBA 如何快速學習?
如果想自學excel軟體難不難?

TAG:VBA | MicrosoftExcel | 别怕,ExcelVBA其实很简单书籍 |