Selection.Replace不用逗号替换逗号

时间:2014-01-29 16:49:21

标签: excel vba replace

我有一个带数字的专栏。如果我将其设置为TEXT格式,而不是选择它,单击替换并用点替换逗号,它会很有效。我的数字得到DOTS而不是COMMAS。 (这就是我想要的,因为我没有使用他们的“数值”)。

如果我在执行此操作时录制宏,那就是生成的代码:

Columns("B:B").Select
    Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

如果我在相同的数据(包含COMMAS的原始数据)上运行此代码,则无效。为什么?

我的数据,以防万一:

1.3.11
4.5.2-714156
3.1.59
4.2.2
4,3
4,3
4,3
4,3

2 个答案:

答案 0 :(得分:1)

我不一定确定你引用的代码为什么不起作用。但是,以下情况应该会给你我相信你想要得到的结果:

Dim Cell As Range

For Each Cell In Selection
    Cell.Value = Replace(Cell.Value, ",", ".")
Next

答案 1 :(得分:0)

我真的无法解释为什么你的代码不起作用,我现在已经玩了几分钟而且我遇到了同样的问题(我在宏记录时工作,在我重新执行时不起作用宏)。

然而,这成功地做了你想要的事情:

last = Cells(Rows.Count, 2).End(xlUp).Row
For x = 1 To last
    Cells(x, 2) = Replace(Cells(x, 2), ",", ".")
Next x

此代码:

  1. 查找第2列的最后一行
  2. 用每个单元格的点替换逗号