vba - 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 函数将数字转换回小数点的句点。在 Round 函数解决了问题之后,将转换从小数点转换为逗号。
uf_Decimal.tbDecimal.Value = GetNumber_Comma(Round(Val(ws_Test.Range("Decimal_Value"), 3)))
我发现在任何地方都没有提到 Round 函数的这个怪癖。有没有人见过这种行为?
解决方案
推荐阅读
- reactjs - 为 Spring Boot 制作黑名单 JWT 令牌
- php - 如何在 codeigniter HMVC 中使用子模块?
- reactjs - 遇到错误'动作必须是普通对象。使用自定义中间件进行异步操作'
- javascript - DHTMLX 网格编号过滤器不使用零 (0),而是使用零作为字符串 ('0')
- angular - 如何测试角度事件监听器?
- jquery - 如何覆盖 Kendo Grid 键盘导航?
- android - 如何在 Android 应用中实现 WebAuthn?
- blockchain - 解释tendermint 内存池和缓存
- key - 使用键时 PySimpleGUI 中的按钮不起作用
- javascript - 在获取数据之前阻止渲染