- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2020-12-3 21:37
| 只看該作者
測試檔 :
'修改檔案類型--------------------------------- ‘列9
oPath = ThisWorkbook.Pa ...
ziv976688 發表於 2020-12-3 14:19 
其實問題的癥結在於.csv檔案的格式與 .xls 檔案不符,
你只需要用 記事本 去開啟 .csv 檔案就會發現它其實是個(資料 與 , 及 換行字元 組合成的)文字檔而已, 表現形式像是 :
期距數,1,10,29,38,47,2,11,20,39,48,3,12,21
Excel 程式能夠正常開啟是因為他有針對 csv 檔案 做處理,
但你卻只是把副檔名改成.xls 它就沒辦法了.
想解決可以用Excel開啟 .csv 檔案再另存成 .xls 檔案即可.- oPath = ThisWorkbook.Path '路徑
- A = Dir(oPath & "\*.CSV")
- Do While A <> ""
- Oldname = oPath & "\" & A
- A = Left(A, Len(A) - 4) ' 去掉 .csv
- With Workbooks.Open(Oldname)
- .Sheets(1).Name = "Data" ' 開啟 .csv 檔案時, Sheet Name預設是檔名, 會發生錯誤,開檔時會有訊息問是否要修正
- A = Replace(A, "基準日:", "")
- A = "49_期距刪牌_" & A '新增需求:再將檔案名稱前批改增加 "49_期距刪牌_"
- .SaveAs Filename:=oPath & "\" & A, FileFormat:=xlWorkbookNormal
複製代碼
49_期距刪牌_00排序_空數總覽-(VBA)-Ans.zip (66.7 KB)
|
|