我对VBA还是很陌生,一直在编写一个脚本,对Excel文件进行某些检查和更正。我试图找到一种方法来用工作簿中的点替换所有逗号,但没有成功。我已经尝试过使用“替换”方法,但是它以某种方式使我的工作簿更加混乱。我认为问题与小数点分隔符的本地设置有关。
Row = lRow
lRow = Cells(Rows.Count, 1).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
Do While Row >= 2
Range("P" & Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns
Row = Row - 1
Loop
Row = lRow
Do While Row >= 2
Range("Q" & Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns
Row = Row - 1
Loop
Row = lRow
该循环应该用P和Q列中的点替换所有逗号。但是,不是点,而是出现破折号。
答案 0 :(得分:0)
您显示的整个代码应归结为:
Range("P1:Q" & Cells(Rows.Count, 1).End(xlUp).Row).Replace What:=",", Replacement:=".", SearchOrder:=xlByColumns
答案 1 :(得分:0)
我猜您正在尝试将欧洲十进制格式更改为美国十进制格式。如123.456,00至123,456.00。小数点分隔符的设置可能很重要。
如果您的代码不起作用,则需要检查单元格中的原始值。我建议先比较.Value
,.Value2
和.Text
。