首页 > 解决方案 > 用“。”替换表达式在 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."which 给出:115m.147058823529 然后替换m""and 给出:115.147058823529.. 这真的很奇怪

标签: excelvba

解决方案


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

另一方面,VBA 仅使用点作为小数分隔符。因此,VBA 用逗号读取数字并在内部用点转换它。然后它在里面找不到任何逗号。


本身工作得Replace()很好:

Sub TestMe()

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

    MsgBox someString

End Sub

附加信息:


推荐阅读