在Excel VBA上用点查找和替换逗号

时间:2018-07-12 06:08:11

标签: excel vba

我对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列中的点替换所有逗号。但是,不是点,而是出现破折号。

2 个答案:

答案 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