問題是,我想從 .csv 檔案中復制資料,但是 excel 自動將它用逗號分隔成列,我需要用“;”分隔它。我可以使用 vba 代碼編輯 csv 檔案在開始?
uj5u.com熱心網友回復:
如果檔案具有 .csv 擴展名,Excel/VBA 將忽略分隔符選項。您必須重命名它以設定分隔符。查看我的VBA CSV 決議器專案。
uj5u.com熱心網友回復:
對我有用的解決方案是使用檔案系統物件讀取 csv 檔案并將其復制到第一行帶有 'sep=' 的臨時檔案中。這是代碼:
Function readCsvF(delim as String, fPath as String) As String
Dim sourceFile As Object, objFSO as Object, newTempFile as Object, _
line as String, newName as String
Set objFSO = CreateObject("scripting.FileSystemObject")
Set sourceFile = objFSO.OpenTextFile(fPath)
newName = objFSO.GetParentFolderName(fPath) & "\tempCSVfile.csv"
Set newTempFile = objFSO.CreateTextFile(newName, True)
newTempFile.Writeline("sep=" & delim)
While Not sourceFile.AtEndOfStream
line = sourceFile.Readline
newTempFile.Writeline (line)
Wend
sourceFile.Close
newTempFile.Close
readCsvF = newName
End Function
所以這個函式所做的基本上是創建新檔案,在其中寫入第一行“sep = 'your specified delimiter' ”,然后逐行從原始 csv 檔案中復制資料。此函式采用兩個字串引數:delim 是您要使用的分隔符,fPath 是 csv 檔案的路徑, - 并回傳新檔案的路徑,因此您可以將其作為作業簿打開并對其進行任何操作。
希望這會對某人有所幫助,我真的很難找到解決方案,也許有更好的方法,idk。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/391114.html
