Excel 从';转换十进制分隔符';(逗号)到'';(dot)例如;7,5“;至;7.5“;

Excel 从';转换十进制分隔符';(逗号)到'';(dot)例如;7,5“;至;7.5“;,excel,vba,number-formatting,Excel,Vba,Number Formatting,对。我知道。这些是本地化设置 但我不会告诉我的客户只为我的应用更改本地化设置 那么如何转换这些数字呢?或者如何更改给定范围的数字格式。(这里需要点,用户可以输入COMA或点,甚至是逗号分开的数字,如1000000.00…) 编辑: CStr()绕过了整个问题,并传递了字符串。如果这纯粹是为了显示,那么您可以在单元格上使用自定义格式字符串。然后,您的用户可以继续使用他们用于输入数字的本地化设置。我认为更改本地化设置是个坏主意,因为这样您的客户可能会输入错误的数字 这是使用自定义格式字符串格式化数字

对。我知道。这些是本地化设置

但我不会告诉我的客户只为我的应用更改本地化设置

那么如何转换这些数字呢?或者如何更改给定范围的数字格式。(这里需要点,用户可以输入COMA或点,甚至是逗号分开的数字,如1000000.00…)

编辑:
CStr()绕过了整个问题,并传递了字符串。

如果这纯粹是为了显示,那么您可以在单元格上使用自定义格式字符串。然后,您的用户可以继续使用他们用于输入数字的本地化设置。我认为更改本地化设置是个坏主意,因为这样您的客户可能会输入错误的数字

这是使用自定义格式字符串格式化数字的一般方法

╔═════════════╦══════════════════════════╦═══════════════╗
║ To display  ║            As            ║ Use this code ║
╠═════════════╬══════════════════════════╬═══════════════╣
║ 1234.59     ║ 1234.6                   ║ ####.#        ║
║             ║                          ║               ║
║ 8.9         ║ 8.9                      ║ #.000         ║
║             ║                          ║               ║
║ 0.631       ║ 0.6                      ║ 0.#           ║
║             ║                          ║               ║
║ 12          ║ 12                       ║ #.0#          ║
║             ║                          ║               ║
║ 1234.568    ║ 1234.57                  ║ #.0#          ║
║             ║                          ║               ║
║ 44.398      ║   44.398                 ║ ???.???       ║
║ 102.65      ║ 102.65                   ║ ???.???       ║
║ 2.8         ║     2.8                  ║ ???.???       ║
║             ║ (with aligned decimals)  ║               ║
║             ║                          ║               ║
║ 5.25        ║ 5 1/4                    ║ # ???/???     ║
║ 5.3         ║ 5  3/10                  ║ # ???/???     ║
║             ║ (with aligned fractions) ║ # ???/???     ║
╚═════════════╩══════════════════════════╩═══════════════╝

这里有一个Microsoft区域格式字符串信息的链接

(2016年8月11日更新链接)


此链接可能会有帮助:部分解决我的问题。现在数字实际上是“7.5”,但是。。vba中的“7,5”将是“7”:如何强制用户输入带点的数字?为什么要这样做?你想达到什么目标?请描述一个典型的场景。尝试了这个,它根本不起作用。1234,56需要按照OP的要求显示为1234.56,但使用########显示为1.234,这是不正确的。@GuidoG我不知道。。。我不明白为什么1234,56会显示为1.234。他们甚至不是同一个号码。所以答案中的代码不起作用。它仍然显示当前的状态。作为小数分隔符和,作为千分隔符。