.xlsm文件未将区域列表分隔符视为管道,而是默认使用逗号

时间:2019-03-15 12:30:07

标签: excel vba csv delimiter xlsm

我有一个方案,其中db2 SQL查询应该将数据提取到CSV文件中,并且应使用管道定界符来分隔csv文件的数据,我通过更改列表分隔符来使用控制面板中的区域设置来完成此操作从|(逗号)到,(管道)...此步骤之后,我程序中的流程是,xlsm文件中有一个VBA代码,它将打开该管道分隔的CSV文件并复制其内容,但此处默认分隔符自动更改为,(逗号),而不考虑管道分隔符。我已经调试了VBA,问题出在

workbooks.open(“ Path \ file.csv”)

在这里,csv文件以逗号作为默认分隔符打开,并复制到xlsm文件中。

ex:以竖线分隔的csv文件数据类似于下面的内容,该数据已通过竖线分隔符正确分隔为多列

1234567|jane,smith|canada|False...

.xlsm文件正在打开文件,如下所示,并通过将逗号作为分隔符将数据复制到两列中,将名称字段提取为姓氏和名字,并用逗号分隔两者之间充当分隔符,将多列分成两列。

1234567|jane    smith|canada|False..

如何使此xlsm文件将定界符视为管道而不是逗号。.应编写任何代码或更改任何设置?

1 个答案:

答案 0 :(得分:0)

CSV =逗号分隔的值。由于它不是CSV文件,请尝试将其命名为.txt并指定分隔符是导入时的管道,否则它可能默认为tab。

这有效:

Sub OpenCSV()

Dim wkbTemp As Workbook
Dim sPath As String, sName As String

sName = "TestFile.txt"
Set wkbTemp = Workbooks.Open(Filename:=sName, Format:=6, Delimiter:="|")

End Sub

这不是

Sub OpenCSV()

Dim wkbTemp As Workbook
Dim sPath As String, sName As String

sName = "TestFile.csv"
Set wkbTemp = Workbooks.Open(Filename:=sName, Format:=6, Delimiter:="|")

End Sub

Excel希望扩展名为.CSV的文件使用逗号分隔符和双引号引起来的格式正确。管道分隔的文本文件为.txt,句点。