VB Round函数更改小数点分隔符

问题描述

我向全球用户提供了电子表格,然后,当然必须使它适应各种区域格式。我使用这些区域设置在美国创建电子表格。俄罗斯的一位用户提到了一个问题,其中对话框中的文本框未显示正确的十进制分隔符(显示句点而不是逗号)。这是我创建的尝试解决此问题的代码

Sub Decimals()
    Dim ws_Test As Worksheet
    
    Set ws_Test = ThisWorkbook.Worksheets("Test")

    On Error GoTo errhandling
        stDec_Sep = Application.International(xlDecimalSeparator)
        If stDec_Sep = "." Then
            uf_Decimal.tbDecimal = Round(ws_Test.Range("Decimal_Value"),3)
            uf_Decimal.Show
            Exit Sub
        End If
        If stDec_Sep = "," Then
            uf_Decimal.tbDecimal.Value = Round(Val(GetNumber_Comma(ws_Test.Range("Decimal_Value"))),3)
            uf_Decimal.Show
            Exit Sub
        End If
    errhandling:
        MsgBox "Operation Failed."
        Exit Sub
    End Sub

我们发现,舍入函数将数字转换回小数点的句点。在Round函数解决问题后,将转换从小数点转换为逗号。

uf_Decimal.tbDecimal.Value = GetNumber_Comma(Round(Val(ws_Test.Range("Decimal_Value"),3)))

我发现在任何地方都没有提到带有Round函数的怪癖。以前有没有人见过这种行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)