我如何在 excel 的单元格中搜索准确的字符串?

How do i search for an exact string in a cell in excel?

我想弄清楚如何使用 vba 在 excel 的单元格中搜索精确的字符串匹配。 例如,我想在 "There is the store" 中搜索 "the" 并且只找到 "the" 而不是 "There" 因为它也有。 我正在尝试做一个自动 search/replace 并且我继续 运行 这个问题,它也替换了那里的 "The" 部分。我研究过使用 Instr,但这没有帮助。 我正在搜索的数据位于单元格 A1 only.I 中,查看了 .find 但似乎它只适用于 Column 参数。我错过了什么吗?此外,我所有的单元格位置都是动态确定的,因此我无法对地址进行硬编码。 任何帮助将不胜感激

谢谢,

在 Excel 中进行全词替换的最简单方法是使用 正则表达式

这是一个简单的起点。传递给它一个范围、一个查找词和一个替换词。您应该添加错误处理等以满足您的需要。

Sub ReplaceInRange( _
  r As Range, _
  FindWord As String, _
  Optional ReplaceWord As String = vbNullString)
    Dim re As RegExp
    Dim mtchs As MatchCollection
    Dim mtch As Match

    Dim dat As Variant
    Dim rw As Long, col As Long

    ' Get Data from range
    If r.Count = 1 Then
        ReDim dat(1 To 1, 1 To 1)
        dat(1, 1) = r.Value
    Else
        dat = r.Value
    End If


    ' Set up Regex
    Set re = New RegExp
    re.IgnoreCase = True
    re.MultiLine = True
    re.Global = True
    re.Pattern = "\b" & FindWord & "\b"

    'process the data
    For col = 1 To UBound(dat, 2)
    For rw = 1 To UBound(dat, 1)
        If re.test(dat(rw, col)) Then
            dat(rw, col) = re.Replace(dat(rw, col), ReplaceWord)

            'Optional, remove double spaces
            dat(rw, col) = Application.WorksheetFunction.Trim(dat(rw, col))
        End If
    Next rw, col

    ' Return data to range
    r = dat
End Sub

通话是这样的

Sub Demo()
    Dim rng As Range

    ' Get range to process by any means you choose
    Set rng = [A1:A2]

    ' Replace 'the' with blank
    ReplaceInRange rng, "the"
End Sub