Arrays 通过VBA编码替换字符串

Arrays 通过VBA编码替换字符串,arrays,excel,vba,str-replace,Arrays,Excel,Vba,Str Replace,如果数组中的字符串(一个单词)与该单元格的字符串(多个单词)匹配,我将尝试用数组中包含的字符串(一个单词)替换特定列的字符串(多个单词)。 我使用了以下代码。它没有显示任何错误,但它没有运行。所以,基本上,当我运行这段代码时,我的数据集没有变化。有人能帮我找出这个代码中的问题吗 Sub FindReplace() Dim Arr As Variant Arr = ActiveSheet.Range("T2:T854") Dim i As Long For i = LBound

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

  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

我相信您只是遇到了一些字符串连接问题,但是一些代码可以被清理

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

样本数据和预期结果pleaseMy数据的H列包含此类查询(约90000):孟加拉国旅游套餐、阿富汗活动、孟加拉国旅游套餐、巴厘岛浪漫之地、孟加拉国旅游套餐、孟加拉国旅游套餐、孟加拉旅游套餐、阿尔及利亚天气、,孟加拉国旅游套餐、巴哈马旅游套餐、巴哈马旅游套餐、孟加拉国游客签证、阿尔及利亚旅游套餐、巴哈马旅游套餐、阿尔及利亚旅游套餐,T栏包含约1000个目的地的名称,如孟加拉国、阿尔及利亚、,等。@JeepedI需要将H列中的查询替换为目标名称,如果H列任何单元格中的一个单词与T列中的目标名称匹配@JeepedLet让我用一个例子来解释一下:对于包含“孟加拉国游客签证”的字符串,我只想用“孟加拉国”替换它,对于“阿尔及利亚旅游套餐”,我只想用“阿尔及利亚”替换它。。。等等@嘲笑