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."
which 给出:115m.147058823529
然后替换m
为""
and 给出:115.147058823529
.. 这真的很奇怪
解决方案
“问题”在于您使用的区域设置和小数点分隔符。法语/德语小数分隔符是逗号,美国小数分隔符是点。
另一方面,VBA 仅使用点作为小数分隔符。因此,VBA 用逗号读取数字并在内部用点转换它。然后它在里面找不到任何逗号。
本身工作得Replace()
很好:
Sub TestMe()
Dim someString As String
someString = "115,147058823529"
someString = Replace(someString, ",", ".")
MsgBox someString
End Sub
附加信息:
推荐阅读
- python - 我的神经网络算法不起作用 mnist 数字
- algorithm - 有趣的搜索问题:查找不在列表中的值(每日编码问题,2020 年 5 月 26 日)
- php - 如何将空值传递给php cli
- c# - 防止空值显示在 API JSON 响应中
- c - puts() 只打印文本文件的最后一个元素
- python - 使用数据框中的 for 循环创建多个图
- html - 如何修复我的输入和按钮之间的间距?
- excel - 当查找值比表或范围中的对应值长时部分匹配
- excel - 启用按钮 如果所有复选框都被勾选
- sql-server - IIS 无法连接到 SQL Server,但外部 PC 可以