Excel 不遵守读取或写入 CSV 文件的分隔符设置

Excel 不遵守读取或写入 CSV 文件的分隔符设置

在 Excel 中保存/打开 CSV 文件时,默认分隔符是分号;,因为我需要它是逗号,所以,我尝试通过更改语言和区域设置来更改它,并遵循了有关此问题的其他几篇帖子(即如何让 Excel 将逗号解释为 CSV 文件中的默认分隔符?)。

但是,在这些设置中更改列表分隔符后,我的 Excel 仍会使用分号保存 CSV 文件。是不是因为 Excel 是在安装时将列表分隔符设置为分号的?还是我这里遗漏了其他设置?

答案1

我找到了问题所在。我在区域设置中的小数点符号也是逗号(欧洲),因此,即使我的列表分隔符是逗号,CSV 也会以分号保存。现在我将小数点符号改为点,现在 CSV 文件可以正确创建,并以逗号作为分隔符。我测试了两次,现在知道一定有一个例外:如果小数点符号是逗号,那么列表分隔符将是分号,即使设置了其他值。

答案2

为了节省

您需要在语言和区域设置中调整列表分隔符事先的保存文件 -

在此处输入图片描述


开场

数据 - 获取外部数据 - 来自文本

在此处输入图片描述

选择文件

选择分隔,按下一步 在此处输入图片描述

并选择分隔符 逗号

在此处输入图片描述

单击“完成”

在此处输入图片描述


或者,将其拉进来,然后使用文本到列看这里

答案3

这是一个非常好的宏,效果非常好:

Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub

答案4

这有点老了,但我遇到了同样的问题:
有一个用分号()分隔的 CSV ;。系统分隔符设置(Windows)也设置为分号。

  • 如果我手动打开 CSV,文件就会被正确分离。
  • 如果我让 VBA 打开它,它会错误地用逗号将其分隔。

使用Delimiter:=";"显然仅适用于.txt

但是,使用Local :=True为我解决了这个问题:

Workbooks.Open(Filename:=fullpath, Local:=True)

相关内容