将CSV转换为Excel表格

我正在尝试将CS​​V文件转换为xls。

CSV文件看起来像这样:

  410E 54B9 C700 0 0 0 0 

但是当转换完成的结果是

  410E; 54B9; C700; 0; 0; 0; 0 
Const xlDelimited = 1 Const xlTextQualifierDoubleQuote = 1 Const xlOpenXMLWorkbook = 51 Set xl = CreateObject("Excel.Application") xl.Workbooks.OpenText "C:\sssss.csv", , , xlDelimited _ , xlTextQualifierDoubleQuote, True, True, True, True, True, True, _ , Array(Array(1,2), Array(2,2), Array(3,2), Array(4,1), Array(5,2) _ , Array(6,1), Array(7,1), Array(8,1), Array(9,1), Array(10,1), Array(11,1)) Set wb = xl.ActiveWorkbook wb.SaveAs "C:ssss.xlsx", xlOpenXMLWorkbook, , , , False wb.Close xl.Quit 

我想要它作为一个表。

Excel对于它接受的CSV非常特别。 将文件重命名为.csv以外的文件(例如C:\sssss.txt ),代码应该按照您的预期工作。 否则,您需要更改文件的内容(用逗号代替分号)以符合Excel的期望。

你使用了比你需要的更多的论据,这应该做的工作:

 Workbooks.OpenText Filename:="C:\ssss.csv", _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Space:=True 

话虽如此,如果您在CSV中使用的空间字符types不是普通空格字符,则可能需要使用以下命令:

 Workbooks.OpenText Filename:="C:\ssss.csv", _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=True, Other:=True, OtherChar:=" " 

将CSV中的空格字符复制并粘贴到OtherChar之后的双引号之间。

而且,正如Ansgar所说,如果文件扩展名为.csv,那么Excel将忽略所有这些规则,并以CSV格式打开该文件。

您可以使用Name重命名该文件,也可以继续打开文件并在导入后直接向列函数添加文本:

 Range("A:A").TextToColumns Destination:=Range("A:A"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:=";" 

希望这可以帮助!