查找并替换文本

时间:2017-06-14 21:17:21

标签: excel excel-vba vba

我是Excel中的VBA新手并且有一个相当简单的问题。我需要在列Bath中搜索特定的文本字符串B。如果它存在,那么我需要用KCab替换同一行的列C中的特定文本字符串BCab3。我需要运行或循环它,直到它检查列B中的所有单元格。

这是我到目前为止所做的,但是没有效果:

Sub Correct_Attribute_Suffix()

    Dim c As Range
    Dim SrchRng

    Set SrchRng = ActiveSheet.Range("B3", ActiveSheet.Range("B65536").End(xlUp))
    Do
        Set c = SrchRng.Find("BATH", LookIn:=xlValues)
        If Not c Is Nothing Then Currentcell.Offset(, 1).Value = Replace("KCab", "K", "B")

    Loop While Not c Is Nothing

End Sub

1 个答案:

答案 0 :(得分:1)

这只是一个使用offset和replace的Find / FindNext操作来完成属性后缀调整。

Sub Correct_Attribute_Suffix()
    Dim fnd As Range, addr As String

    With ActiveSheet.Range("B3", ActiveSheet.Range("B65536").End(xlUp))
        Set fnd = .Find(What:="BATH", After:=.Cells(.Cells.Count), LookIn:=xlFormulas, _
                      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                      MatchCase:=False, SearchFormat:=False)
        If Not fnd Is Nothing Then
            addr = fnd.Address
            Do
                fnd.Offset(0, 1) = Replace(fnd.Offset(0, 1).Value2, "KCab", "BCab3", 1, 1, vbTextCompare)
                Set fnd = .FindNext(After:=fnd)
            Loop While addr <> fnd.Address
        End If
    End With
End Sub