【问题标题】:Use comma instead of dot for decimals when saving as text保存为文本时使用逗号而不是小数点
【发布时间】:2014-05-13 08:06:13
【问题描述】:

这个问题看起来和Visual basic handle decimal comma 很相似,但那是一个完全不同的问题。

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

ActiveWorkbook.SaveAs Filename, FileFormat:=xlText

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

一些有趣的细节:

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

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

【问题讨论】:

  • 它已经在那里了,@Bathsheba。这实际上只是以xlText 作为文件格式的“另存为”。 Filename 是一个以.txt 结尾的字符串,但这应该不重要。
  • 四杯咖啡永远是灵感的门槛。它需要至少七杯,或一杯 Drambuie。
  • 如果可以的话,我会对该评论 +10,@paxdidablo。

标签: vba excel number-formatting


【解决方案1】:

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

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

你也可以明确指定任何你想要的分隔符:

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

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

【讨论】:

  • 非常感谢!我正在为这个举杯。
猜你喜欢
  • 2016-06-18
  • 2021-06-28
  • 2012-06-09
  • 1970-01-01
  • 2023-03-23
  • 2015-10-15
  • 2017-11-23
  • 2020-04-07
  • 1970-01-01
相关资源
最近更新 更多