[問題] VBA存讀CSV格式的問題

看板Office作者 (Jtin 介)時間11年前 (2015/03/07 17:08), 11年前編輯推噓0(0022)
留言22則, 2人參與, 最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體:EXCEL 版本:2007 存取CSV的方法如下: ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "data_001" & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False 一開始發現的問題是 日期格式會跳掉 我需要的是yyyy/mm/dd的格式 或者是 mm/dd/yyyy的格式 去灌入其他程式使用 但一開始存檔之後 只要再開啟檔案 就會變成 yyyy/m/d的格式 因此我試著把他用文字表示yyyy/mm/dd的型態,去灌入其他程式做使用 結果讀取出現bug 但是我只需要手動把csv檔案開啟後 存檔 就可以正常讀取 但因為資料量太多 實在無法一一做存檔動作 想問問板上大大 在儲存CSV檔的時候,VBA碼該做怎樣的設定才能夠讓原有格式保留 -- ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1425719291.A.2F6.html

03/07 23:05, , 1F
測試一下存成csv會是以原有格式保留,只是如果在以excel開
03/07 23:05, 1F

03/07 23:06, , 2F
啟時才又跳回yyyy/m/d
03/07 23:06, 2F

03/07 23:07, , 3F
csv可以記事本開啟,就會看到以原有格式保留
03/07 23:07, 3F

03/07 23:16, , 4F
這是測試的影片
03/07 23:16, 4F

03/10 20:54, , 5F
恩 soyoso大講的是對的 存檔時他確實還是存成對的格式
03/10 20:54, 5F

03/10 20:55, , 6F
只是我還是無法灌到其他程式裡...除非我再手動存檔一次
03/10 20:55, 6F

03/10 20:55, , 7F
用VBA寫了批量開啟存檔的功能 也無法改善
03/10 20:55, 7F
Sub 把路徑下的CSV開啟後存檔一次化解格式問題() Dim mF As String mF = Dir(ThisWorkbook.Path & "\" & "*.csv") Do While mF <> "" Workbooks.Open Filename:=ThisWorkbook.Path & "\" & mF, Format:=xlCSV, _ Delimiter:="," 'Application.DisplayAlerts = False '不詢問就儲存和關閉 ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\renew\" & mF & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False, Local:=True ActiveWorkbook.Save ActiveWorkbook.Close mF = Dir() Loop End Sub 我是這樣寫

03/10 22:28, , 8F
http://goo.gl/RsV9hp 那如果用for output as #1的方式輸
03/10 22:28, 8F

03/10 22:28, , 9F
03/10 22:28, 9F

03/11 19:11, , 10F
找到問題了,其實是因為這樣子的格式會多出空格
03/11 19:11, 10F

03/11 19:11, , 11F
但不知道怎樣把空格消去
03/11 19:11, 11F

03/11 19:18, , 12F
資料格式會長這樣 02/02/2009,1345,5555 ,6666 ,
03/11 19:18, 12F

03/11 20:38, , 13F
那是否可以提供檔案看看呢?
03/11 20:38, 13F

03/11 20:54, , 14F
03/11 20:54, 14F

03/11 21:34, , 15F
是否有在excel檔就有資料的檔案呢?想從檔案轉出時看一下
03/11 21:34, 15F

03/11 21:34, , 16F
是否是原始資料的問題
03/11 21:34, 16F

03/11 22:03, , 17F
03/11 22:03, 17F

03/11 22:25, , 18F
那把Selection.NumberFormatLocal = "0_ "改為
03/11 22:25, 18F

03/11 22:25, , 19F
Selection.NumberFormatLocal = "0" 試試
03/11 22:25, 19F

03/11 22:25, , 20F
測試轉出後就沒有後面空格了
03/11 22:25, 20F

03/11 22:46, , 21F
成功了!!!!!!!感謝soyoso大!!!!!!!!!
03/11 22:46, 21F

03/11 22:49, , 22F
^^
03/11 22:49, 22F
※ 編輯: winnina1 (118.169.254.42), 03/14/2015 10:39:57
文章代碼(AID): #1K-h_xBs (Office)
文章代碼(AID): #1K-h_xBs (Office)