VBA IF / THEN Find&更换

时间:2014-10-15 14:50:34

标签: excel vba excel-vba

我想请求一些关于如何在我的vba代码中加入if-then语句的帮助,找到并替换某些文本。

我的情况有几组数字:8815,0815,1234& 5678和我当前的代码找到“815”并用'0815替换它,这样前导零就不会丢失。很糟糕的是,我的问题是它在0815数字集上正确执行的替换语句,并且正在8815数字集上执行。

我如何写一个命令来说,如果8815然后是8815,但如果“815”不在数字中则不更改数字?

 Columns("H").Replace What:="815", Replacement:="'0815", SearchOrder:=xlByColumns

我很感激任何帮助,因为我已经四处寻找并且没有找到太多关于此的内容。

2 个答案:

答案 0 :(得分:2)

使用参数LookAt:=xlWhole只有当单元格中的值正是您要查找的值时才会替换它。

答案 1 :(得分:0)

正如Barry所说,它应该是:

列(" H:H")。替换内容:=" 815",替换:="' 0815",LookAt:= xlWhole

或者如果你想使用IF语句,那么它应该是这样的:

Sub test()

    Dim rngColumn       As Range
    Dim rngCell         As Range

    Set rngColumn = Worksheets("Sheet1").Columns("H")
    For Each rngCell In rngColumn.Cells
        If Trim(rngCell) <> "" Then
            If Trim(rngCell) = "815" Then
                rngCell.Value = "'0815"
            End If
        End If
    Next rngCell

    Set rngColumn = Nothing
    Set rngCell = Nothing

End Sub