Vba:显示小数点而不是昏迷

乔纳森

我想让宏中的所有数字都显示为点而不是昏迷

例如此显示“0,03”但我想要“0.03”:

Dim MyNumber As Single
MyNumber = 0.03
MsgBox (MyNumber)

我已经尝试了一组,它的代码无法正常工作:

  • 这仍然显示昏迷:

    Application.DecimalSeparator = "."
    
  • 这仍然显示昏迷并且不适用于整个宏

    MyNumber = Format(MyNumber, "##0.00")
    
  • 这显示点而不是昏迷,但不适用于整个宏

    MsgBox (Replace(MyNumber, ",", "."))
    

谢谢!

乔纳森

作为第一步,必须声明来自 Kernel32 动态链接库的三个函数:

Private Declare Function GetUserDefaultLCID% Lib "kernel32" ()
Private Declare Function GetLocaleInfoA Lib "kernel32" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Private Declare Function SetLocaleInfoA Lib "kernel32" ( ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
  • 第一个将获得用户默认 id
  • 第二个将有助于获得当地人的价值(并因此恢复)
  • 第三个将有助于设置当地人的价值

小数的本地类型值为 14(有些人喜欢写 &HE - 十六进制 E -)

然后程序必须是这样的:

' record the settings in the variable LocalSettingsDecimal
Dim LocalSettingsDecimal As String
Dim Buffer As String
Buffer = String(256, 0)
Dim le As Integer
le = GetLocaleInfoA(GetUserDefaultLCID(), 14, Buffer, Len(Buffer))
LocalSettingsDecimal = Left(Buffer, le - 1)

' force decimal settings to '.'
Call SetLocaleInfoA(GetUserDefaultLCID(), 14, ".")

' body
Dim MyNumber As Single
MyNumber = 0.03
MsgBox (MyNumber)

' set back the decimal settings
Call SetLocaleInfoA(GetUserDefaultLCID(), 14, LocalSettingsDecimal)

请注意,不幸的是,如果程序主体失败,则不会恢复设置……但这仍然可以解决问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

小数逗号而不是小数点

来自分类Dev

强制小数点而不是逗号

来自分类Dev

在Excel VBA中小数点被忽略

来自分类Dev

HashMap以小数点显示字母频率?

来自分类Dev

在注释中显示小数点

来自分类Dev

显示数值在小数点后的数据

来自分类Dev

用两个小数点零作为(,-)而不是(,00)显示价格

来自分类Dev

显示逗号而不是点作为小数点分隔符

来自分类Dev

Grails-输入字段为小数点显示点('。')而不是(',')

来自分类Dev

将双精度舍入到小数点后两位,显示“#.00”而不是“#.0”

来自分类Dev

使用小数逗号而不是小数点的变量

来自分类Dev

如何根据语言环境显示小数点,但不显示小数点?

来自分类Dev

如何显示小数点后2位小数?

来自分类Dev

小数点?类型不是特定于文化的

来自分类Dev

Java小数点

来自分类Dev

保留小数点

来自分类Dev

在VBA中更改小数点分隔符

来自分类Dev

在VBA中更改小数点分隔符

来自分类Dev

如何更改VBA数组小数点分隔符?

来自分类Dev

小数点在Lua中显示错误

来自分类Dev

如何显示小数点文字数字?

来自分类Dev

防止在C ++中显示小数点前的零

来自分类Dev

Eclipse(Android)-程序显示小数点和“ E”

来自分类Dev

在小数点前显示固定宽度的浮点数

来自分类Dev

Foundation 5滑块显示两个小数点

来自分类Dev

Oracle APEX-图表显示小数点

来自分类Dev

Eclipse(Android)-程序显示小数点和“ E”

来自分类Dev

如何在bc中显示小数点前的零?

来自分类Dev

在Java中显示输出小数点后2位