[問題] 請問excel 批次把xlsx 轉CSV

看板Office作者 (好想學直排輪唷!)時間8年前 (2017/07/19 00:31), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體: Excel 版本: 2016,企業版 不好意思, 因為需要大量把xlsx檔案轉成csv (但是之前沒碰過VB) 在參考了板上的文章 https://www.ptt.cc/bbs/Office/M.1241585891.A.45C.html 試著稍微修改, 不曉得為何轉檔出來的檔案, 檔名一樣為*.xlsx, 而且會出現, "Excel 無法開啟檔案,因為檔案格式或副檔名無效,請確認檔案沒有毀損, 且副檔名符合檔案的格式。" 大大感謝~ ---我修改的code如下-- Sub Macro1() Dim path As String Dim obApp As New Excel.Application Dim myFso: Set myFso = CreateObject("Scripting.FileSystemObject") Dim wbnew '要處理的目錄 path_IN = "C:\Users\Desktop\temp2\test\" path_OUT = "C:\Users\Desktop\temp2\csv\" obApp.DisplayAlerts = False obApp.ScreenUpdating = False Dim myfiles: Set myfiles = myFso.GetFolder(path_IN).Files For Each myFile In myfiles Set wbnew = obApp.Workbooks.Open(path_IN & myFile.Name) With wbnew.Worksheets(1) End With '存檔並改成 excel 格式 wbnew.SaveAs Filename:=path_OUT & myFile.Name, FileFormat:=xlCSV wbnew.Close Set wbnew = Nothing Next obApp.ScreenUpdating = True obApp.DisplayAlerts = True Set obApp = Nothing MsgBox ("完成!") End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.158.53 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1500395482.A.3E1.html

07/19 01:00, , 1F
測試saveas內的myfile.name如副檔名相同的話,可以replace
07/19 01:00, 1F

07/19 01:00, , 2F
將".xlsx"取代為""
07/19 01:00, 2F

07/19 01:01, , 3F
如不相同的話,以left,取字元可用instrrev(如主檔名內有
07/19 01:01, 3F

07/19 01:02, , 4F
可能出現點號 .,如不出會出現的話可以instr判斷點號的位
07/19 01:02, 4F

07/19 01:02, , 5F
07/19 01:02, 5F

07/19 01:18, , 6F
或以getbasename來取得myfile.path的檔名(無副檔名)部分
07/19 01:18, 6F

07/19 03:47, , 7F
謝謝, 檔名一樣, 我試用replace成功囉~耶!
07/19 03:47, 7F

07/19 03:52, , 8F
不過每一個檔案都很大(約200mb),讀好久...q_q
07/19 03:52, 8F
文章代碼(AID): #1PRZVQFX (Office)
文章代碼(AID): #1PRZVQFX (Office)