[英]Convert Excel file with commas to CSV VBA
我有一個Excel文件,需要使用Excel VBA將其轉換為CSV。
因此,我得到了以下代碼:
Sub REPORT()
Dim ColNum As Integer
Dim Line As String
Dim LineValues() As Variant
Dim OutputFileNum As Integer
Dim PathName As String
Dim rowNum As Integer
'Create CSV file
PathName = Application.ActiveWorkbook.Path OutputFileNum = FreeFile
Open PathName & "\" & "Myfile" & ".csv" For Output Lock Write As #OutputFileNum
SheetValues = ActiveSheet.UsedRange
Range("A1").CurrentRegion.Select
With ActiveSheet.UsedRange
numbercolumns = .Columns.Count
End With
ReDim LineValues(1 To numbercolumns)
For rowNum = 1 To last
For ColNum = 1 To numbercolumns
LineValues(ColNum) = SheetValues(rowNum, ColNum)
Next
Line = Join(LineValues, ",")
Print #OutputFileNum, Line
Next
Close OutputFileNum
End Sub
我的問題是Excel文件的任何單元格中都有逗號。 發生這種情況時,宏會將單元格分為兩部分,然后將其中一部分移至下一列,以覆蓋數據。
非常感謝
最可能也是最簡單的方法是在加入之前刪除所有逗號:
For rowNum = 1 To last
For ColNum = 1 To numbercolumns
LineValues(ColNum) = Replace(SheetValues(rowNum, ColNum), ",", "")
Next
Line = Join(LineValues, ",")
Print #OutputFileNum, Line
Next
另一種選擇是用“;”分隔csv文件。 或使用的數據中未包含的任何其他字符。
最終,您可以用其他方式替換逗號(例如“#”或其他不太可能使用的字符),並在讀取文件時將其還原,當然前提是您以您可以控制的方式讀取文件。
您是否看過本機函數?
ActiveSheet.SaveAs Filename:=PathName & "\" & "Myfile" & ".csv", FileFormat:=xlCSV, CreateBackup:=False
它可以正確地轉義包含雙引號的逗號的單元格
最簡單的方法是將要附加的內容括在引號中-可以使用Char(34)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.