[爆卦]批次xls轉xlsx是什麼?優點缺點精華區懶人包

為什麼這篇批次xls轉xlsx鄉民發文收入到精華區:因為在批次xls轉xlsx這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者forgotnow (好想學直排輪唷!)看板Office標題[問題] 請問excel 批次把xl...


(若是和其他不同軟體互動之問題 請記得一併填寫)
軟體: 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
soyoso: 測試saveas內的myfile.name如副檔名相同的話,可以replace 07/19 01:00
soyoso: 將".xlsx"取代為"" 07/19 01:00
soyoso: 如不相同的話,以left,取字元可用instrrev(如主檔名內有 07/19 01:01
soyoso: 可能出現點號 .,如不出會出現的話可以instr判斷點號的位 07/19 01:02
soyoso: 置 07/19 01:02
soyoso: 或以getbasename來取得myfile.path的檔名(無副檔名)部分 07/19 01:18
forgotnow: 謝謝, 檔名一樣, 我試用replace成功囉~耶! 07/19 03:47
forgotnow: 不過每一個檔案都很大(約200mb),讀好久...q_q 07/19 03:52

你可能也想看看

搜尋相關網站