在单元格范围不完全的短语中搜索单词的一部分

时间:2018-07-10 23:49:08

标签: excel vba excel-vba

我想知道是否有人可以帮助我。我创建了一个宏,该宏将在工作表中搜索所有显示特定单词的单元格,然后显示该行。

这完全可以正常工作,并且做了我想要做的事...

我想做的是在工作表中搜索任何显示单词或短语的一部分并显示行的单元格

例如... 此刻,如果我搜索“黑衣男子”,它将仅在B列中显示任何包含短语“黑衣男子”的行。

我想要做的是在使用“黑衣人”搜索时也显示“黑衣人2”和“黑衣人3”以及“黑衣人”(我也可以只搜索“黑衣人” “。它还会显示“黑衣人1、2和3 ...”,但还会显示包含“黑狗”的行

如果我想显示包含“黑色大锅”的行,我希望能够仅搜索“大锅”而不是整个短语。是的,我知道我会得到任何带有大锅这个词的东西,但是那很好。

我要实现的目的是不必键入确切的短语来获取搜索结果。

下面是我当前的代码...在此先感谢您!

Option Compare Text

Sub finddata()

Dim itemname As String
Dim finalrow As Integer
Dim i As Integer

Sheets("PRICES").Range("G5:K100").ClearContents

itemname = Sheets("PRICES").Range("H2").Value
finalrow = Sheets("PRICES").Range("A20000").End(xlUp).Row

For i = 2 To finalrow
    If Cells(i, 2) = itemname Then
        Range(Cells(i, 1), Cells(i, 5)).Copy
        Range("G100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
        End If
Next i

Range("H2").Select

End Sub

1 个答案:

答案 0 :(得分:1)

您可以使用“赞”和通配符“ *”在单元格中查找单词或单词的一部分。

尝试以下代码:


Option Compare Text

Sub finddata()

Dim itemname As String
Dim finalrow As Integer
Dim i As Integer

Sheets("PRICES").Range("G5:K100").ClearContents

itemname = Sheets("PRICES").Range("H2").Value
finalrow = Sheets("PRICES").Range("A20000").End(xlUp).Row

For i = 2 To finalrow
    If Cells(i, 2).value like "*" & itemname & "*" Then
    Range(Cells(i, 1), Cells(i, 5)).Copy
    Range("G100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
    End If
Next i

Range("H2").Select

End Sub

唯一的更改是在此行上:

If Cells(i, 2) = itemname Then

我已更改为:

If Cells(i, 2).value like "*" & itemname & "*" Then