保存为文本时,请使用逗号代替小数点

时间:2014-04-02 07:44:55

标签: excel vba excel-vba number-formatting

此问题与Visual basic handle decimal comma类似,但问题与完全不同。

我正在编写一个VBA宏来将我的Excel文件保存到.txt文件中。此代码行是通过实际记录我将文件保存到.txt

的宏来生成的
ActiveWorkbook.SaveAs Filename, FileFormat:=xlText

现在,问题是.txt文件的所有小数都是用点格式化的,而我要求它们是逗号。例如,当我期待32.7时,它会写32,7

一些有趣的细节:

  • 我确保Windows和Excel设置为使用正确的本地设置。在我看的每个地方,小数都用逗号正确显示。
  • 手动保存工作簿时,它也会正确地将逗号写入文件。但是,当执行我在执行此操作时记录的VBA代码时,我得到了点。

我忘记了一些漂亮的论点或选项吗?我真的很茫然 - 即使我的第四杯咖啡也没有带来任何灵感。

1 个答案:

答案 0 :(得分:7)

这对我有用(如果你的本地分隔符是逗号):

ActiveWorkbook.SaveAs Filename, FileFormat:=xlText, Local:=True

您还可以明确指定所需的任何分隔符:

Application.DecimalSeparator = "," ' or any other separator, e.g. "-"
ActiveWorkbook.SaveAs Filename, FileFormat:=xlText, Local:=True

但它会影响整个工作簿,如果它与本地分隔符不同,您可以在保存txt文件后将其更改回来