Excel 替换表达式不';t在VBA中使用"&引用;
我需要使用Excel 替换表达式不';t在VBA中使用"&引用;,excel,vba,Excel,Vba,我需要使用replace表达式将,“替换为” 例如,我有:115147058823529 它不适用于“或任何其他字符 Range("K" & rw).Value = Replace(Range("K" & rw).Value, ",", ".") 结果:115147058823529 而对于“,” 结果:115..147058823529 我找不到任何解释。 我想让它为运行“ 数字格式是通用的,我不想弄乱它 我甚至试着用“m.”替换“,”,结果是:115m.1470588235
replace
表达式将,“
替换为”
例如,我有:115147058823529
它不适用于“
或任何其他字符
Range("K" & rw).Value = Replace(Range("K" & rw).Value, ",", ".")
结果:115147058823529
而对于“,”
结果:115..147058823529
我找不到任何解释。
我想让它为运行“
数字格式是通用的,我不想弄乱它
我甚至试着用“m.”
替换“,”
,结果是:115m.147058823529
然后将m
替换为”
,得到:115.147058823529
。。这真的很奇怪问题在于您使用的区域设置和小数点分隔符。法文/德文小数点分隔符是逗号,美文小数点分隔符是点
另一方面,VBA仅使用点作为十进制分隔符。因此,VBA用逗号读取数字,并在内部用点进行转换。然后,它在里面找不到任何逗号
Replace()
本身工作正常:
Sub TestMe()
Dim someString As String
someString = "115,147058823529"
someString = Replace(someString, ",", ".")
MsgBox someString
End Sub
其他信息:
Range(“K”)和rw.Value=Replace(CStr(Range(“K”)和rw.Value),“,”)
,但它给出了相同的结果result@aekbj-是的,这是因为您的单元格中没有逗号,尽管您看到了它。VBA看到一个点。如果您使用评论中的“良信良信”建议,并将单元格转换为文本
,则该功能将正常工作。但这将不再是一个数字。
Sub TestMe()
Dim someString As String
someString = "115,147058823529"
someString = Replace(someString, ",", ".")
MsgBox someString
End Sub