vba - 保存为文本时使用逗号而不是点来表示小数

标签 vba excel number-formatting

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

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

ActiveWorkbook.SaveAs Filename, FileFormat:=xlText

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

一些有趣的细节:

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

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

最佳答案

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

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

您还可以明确指定任何您想要的分隔符:

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

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

关于vba - 保存为文本时使用逗号而不是点来表示小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22804699/

相关文章:

ocaml - 使用千位分隔符格式化数字

sql - 从其他方面相同的行中添加总计

excel - Odoo 13考勤模块如何设置内部用户上传和导入excel文件的权限?

excel - 标准不在范围内的 SUMIFS

java - 在java中读取长二进制数

sql - Access SQL - 连续数周失败

excel - VBA如果单元格小于一定长度,突出显示并显示消息

sql - 从 Access 迁移到 SQL Server

excel - 如何在Excel中的多个工作表中删除重复值和原始值

java - 输出 double 中的句点但输入 double 中的逗号?