使用逗号将Excel文件转换为CSV VBA
问题描述:
我有一个需要使用Excel VBA转换为CSV的excel文件。使用逗号将Excel文件转换为CSV VBA
所以对于我得到了下面的代码:
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文件中的任意单元格逗号。发生这种情况时,宏将单元格分成两部分,并将一部分移动到下一列以覆盖数据。
非常感谢
答
第一,可能比较容易apporach将加入前删除所有逗号:
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)。
非常感谢。我喜欢你的想法 – fmmoraleda 2015-02-09 14:43:39
但为什么在单元格中有逗号?如果这是小数点分隔符,那么CSV应该使用“;”而不是“,”之间的值。如果逗号在字符串中,则值应该放在双引号之间。无需更改实际内容 – galinette 2015-02-10 08:48:33
嗨,如果用“#”替换“,”我怎么能在创建csv时恢复它? – fmmoraleda 2015-03-05 09:39:47