Board logo

標題: CSV儲存問題(已解決) [打印本頁]

作者: koala2099    時間: 2012-5-6 13:07     標題: CSV儲存問題(已解決)

本帖最後由 koala2099 於 2012-5-6 21:14 編輯

自認程式我完全不解
所以~希望有人願意幫幫我
每月不定期有.csv檔案資料進來需整理(近30個)
目前作法是一個一個開啟再做另儲存成.xls相當費時
請求有大大協助是否可使用VBA
將csvdb資料夾內的.csv儲存成.xls
另存後存放位置不變檔名不變
01.csv→01.xls
03.csv→03.xls
04.csv→04.xls
.....
最後csvdb資料來內的檔案會有.csv檔及.xls檔2種
拜託了~
作者: GBKEE    時間: 2012-5-6 14:43

回復 1# koala2099
Excel  是可以直接開啟 CSV 檔案 不一定要另存為 XLS
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xlpath As String, xlfile As String
  4.     xlpath = "D:\csvdb\"
  5.     xlfile = Dir(xlpath & "*.csv")
  6.     'Dir 函數 傳回一個 String ,用以表示合乎條件、檔案屬性、磁碟標記的一個檔案名稱、或目錄、檔案夾名稱。
  7.     'Dir 會傳回第一個符合 pathname 的檔案名稱,若要取得其它符合 pathname 的檔案名稱,請重新呼叫 Dir,且不要使用引數,如果已沒有合乎條件的檔案,則 Dir 會傳回一個空字串 (""),一旦傳回值為空字串時,如要再次呼叫 Dir ,也必須要再指定 pathname ,否則會產生錯誤
  8.     Do While xlfile <> ""
  9.         With Workbooks.Open(xlpath & xlfile)
  10.             .SaveAs Filename:=xlpath & Replace(xlfile, "csv", ".xls")
  11.             .Close SaveChanges:=True   '關閉 檔案 ,存檔
  12.          End With
  13.         xlfile = Dir
  14.     Loop
  15. End Sub
複製代碼

作者: c_c_lai    時間: 2012-5-6 15:01

回復 2# GBKEE
全部資料都存在A欄上:
A1 -> 業務員,1月,2月,3月,總業績
A2 -> 王大木,678,15,150,843
A3 -> 張小毛,51,99,47,197
A4 -> 李小輝,343,8,50,401
A5 -> 九山林,80,46,505,631
A6 -> 鄭中心,480,65,396,941
A7 -> 王中木,996,33,49,"1,078"
A8 -> 許大山,764,944,994,"2,702"
A9 -> 張小金,503,96,9,608
作者: koala2099    時間: 2012-5-6 15:12

本帖最後由 koala2099 於 2012-5-6 15:15 編輯

回復 2# GBKEE


CSV 檔案可直接開啟我了解
因為連接access執行需使用.xls不久前資料全面改csv
碰上前輩離職
目前待他人修改access連接前每天只好一個一個另存為xls
先解決目前的困難....
您給的資料可以使用但位置全移位了
可以~讓它位置不變嗎?
感謝大大您的幫忙
讓我在工作上可以省下許多時間
您的解釋及資料內容會詳加了解
非常感謝您~感恩^^
作者: GBKEE    時間: 2012-5-6 16:56

回復 3# c_c_lai
回復 4# koala2099
漏了一個參數  FileFormat:=xlNormal
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xlpath As String, xlfile As String
  4.     xlpath = "D:\csvdb\"
  5.     xlfile = Dir(xlpath & "*.csv")
  6.     'Dir 函數 傳回一個 String ,用以表示合乎條件、檔案屬性、磁碟標記的一個檔案名稱、或目錄、檔案夾名稱。
  7.     'Dir 會傳回第一個符合 pathname 的檔案名稱,若要取得其它符合 pathname 的檔案名稱,請重新呼叫 Dir,且不要使用引數,如果已沒有合乎條件的檔案,則 Dir 會傳回一個空字串 (""),一旦傳回值為空字串時,如要再次呼叫 Dir ,也必須要再指定 pathname ,否則會產生錯誤
  8.     Do While xlfile <> ""
  9.         With Workbooks.Open(xlpath & xlfile)
  10.             .SaveAs Filename:=xlpath & Replace(xlfile, "csv", ".xls"), FileFormat:=xlNormal
  11.             .Close SaveChanges:=True   '關閉 檔案 ,存檔
  12.          End With
  13.         xlfile = Dir
  14.     Loop
  15. End Sub
複製代碼

作者: koala2099    時間: 2012-5-6 21:12

回復 5# GBKEE


    :'( 完全符合需求^^非常謝謝你的幫忙




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)