VBA将小数更改为逗号自动
我在VBA中有一个Excelmacros。 昨天一切正常,今天早上VBA正在取小数点,并把点改为逗号。 那是从5.1到5.1。 我正在使用德语系统,并设置了Excels高级选项,点是小数,逗号是数千。
例如,我在Excel表中设置3.75的日常Scrum会议价值
Excel工作表input:
当我使用一个函数来读取值如:
Sub TestFunction() MsgBox (Sheets("Input_Parameters").Cells(25, 2)) End Sub
我用逗号获得价值。
VBAfunction输出:
有没有在VBA环境中的设置来解决这个问题,或者是有我缺less的东西。 我所有的macros备份都显示相同的影响,所以我知道这是我在今天的版本中的代码已经改变了。
谢谢您的帮助。
这是在德语系统上使用德语默认语言环境Windows设置(逗号作为小数点分隔符,在Windows设置中指向千位分隔符)的正常行为。
MsgBox .Cells(25, 2).Value
以Windows语言环境的默认格式返回值。
您在Excel选项中设置的Application.DecimalSeparator
影响单元格中显示的内容,但不影响消息框显示的内容。
所以你可以使用
MsgBox .Cells(25, 2).Text
它以单元格格式的文本forms返回值。
另一个解决方法是用replace()
函数replace逗号:
MsgBox Replace(.Cells(25, 2).Value, ",", ".")
我来到德国之后创造的第一个职能是:
Public Function change_commas(ByVal myValue As Variant) As String Dim str_temp As String str_temp = CStr(myValue) change_commas = Replace(str_temp, ",", ".") End Function
自从最近2年以来,每个VBA项目都存在。 尽pipe我已经改变了我写函数名和variables的风格,但是这个留下来了。