在VBA中,“。”替换表达式不起作用。

时间:2018-09-27 11:22:44

标签: excel vba

我需要使用","表达式将"."替换为Replace

例如,我有:115,147058823529

它不适用于"."或其他任何字符

Range("K" & rw).Value = Replace(Range("K" & rw).Value, ",", ".")

结果:115,147058823529

它非常适合".."

Range("K" & rw).Value = Replace(Range("K" & rw).Value, ",", "..")

结果:115..147058823529

我找不到任何解释。 我想让它在"."

上运行

数字格式是通用的,我不想弄混。

我什至尝试将","替换为"m.",从而得到:115m.147058823529 然后用m替换"",得到:115.147058823529 ..这真的很奇怪

1 个答案:

答案 0 :(得分:1)

“问题”在您使用的区域设置和小数点分隔符中。法语/德语小数点分隔符是逗号,而美国的小数点分隔符是点。

另一方面,

VBA仅使用点作为小数点分隔符。因此,VBA用逗号读取数字,并在内部用点将其转换。那就找不到里面的逗号了。


Replace()本身可以正常运行:

Sub TestMe()

    Dim someString As String
    someString = "115,147058823529"
    someString = Replace(someString, ",", ".")

    MsgBox someString

End Sub

其他信息: