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