通过VBA编码替换字符串

时间:2018-07-17 21:35:02

标签: arrays excel excel-vba str-replace

如果数组中的字符串(一个单词)与该单元格的字符串(多个单词)匹配,我试图用数组中包含的字符串(一个单词)替换特定列的字符串(多个单词) 。 我使用了以下代码。它没有显示任何错误,但是没有运行。因此,基本上,当我运行这段代码时,我的数据集没有任何变化。谁能帮我解决这段代码中的问题?

  Sub FindReplace()
  Dim Arr As Variant
  Arr = ActiveSheet.Range("T2:T854")
  Dim i As Long
  For i = LBound(Arr) To UBound(Arr)
  Columns("H:H").Select
  Selection.Replace What:="*Arr(i)*", Replacement:="Arr(i)", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
  Next i

  End Sub

1 个答案:

答案 0 :(得分:1)

我相信您只是有一些字符串连接问题,但是一些代码可以清除。

Sub FindReplace()
    Dim Arr As Variant, i As Long

    with ActiveSheet
        Arr = .Range(.Cells(2, "T"), .Cells(.Rows.Count, "T").End(xlUp)).value2

        with .columns(8)
            For i = LBound(Arr, 1) To UBound(Arr, 1)
                .Replace What:="*" & Arr(i, 1) & "*", Replacement:=Arr(i, 1), _
                         LookAt:=xlwhole, SearchOrder:=xlByRows, MatchCase:=False, _
                         SearchFormat:=False, ReplaceFormat:=False
            next i
        end with
    end with

End Sub