Vba 在单元格中查找单词

Vba 在单元格中查找单词,vba,excel,Vba,Excel,Excel-VBA 我想知道如何使用VBA在Excel的行范围内查找单词。例如,“要查找的单词”,这不仅仅是单元格值,而是将单词转换为字符串。例如,在字符串“需要帮助映射网络打印机”中查找单词“network”的方法 使用一个简单的循环 Sub Button1_Click() Dim ws As Worksheet Dim sh As Worksheet Dim lstRw As Long Dim rng As Range Dim s As String

Excel-VBA 我想知道如何使用VBA在Excel的行范围内查找单词。例如,“要查找的单词”,这不仅仅是单元格值,而是将单词转换为字符串。例如,在字符串“需要帮助映射网络打印机”中查找单词“network”的方法

使用一个简单的循环

Sub Button1_Click()
    Dim ws As Worksheet
    Dim sh As Worksheet
    Dim lstRw As Long
    Dim rng As Range
    Dim s As String
    Dim c As Range

    s = "* network *"

    Set ws = Sheets("Data")
    Set sh = Sheets("SFB")

    With ws
        lstRw = .Cells(.Rows.Count, "E").End(xlUp).Row
        Set rng = .Range("E2:E" & lstRw)
    End With

    For Each c In rng.Cells
        If c.Value Like s Then
            c.EntireRow.Copy sh.Cells(sh.Rows.Count, "A").End(xlUp).Offset(1)
        End If
    Next c


End Sub
也可以使用过滤器宏

Sub FiltExample()
    Dim ws As Worksheet, sh As Worksheet
    Dim rws As Long, rng As Range
    Set ws = Sheets("Data")
    Set sh = Sheets("SFB")

    Application.ScreenUpdating = 0

    With ws
        rws = .Cells(.Rows.Count, "E").End(xlUp).Row
        .Range("E:E").AutoFilter Field:=1, Criteria1:="=*network*"
        Set rng = .Range("A2:Z" & rws).SpecialCells(xlCellTypeVisible)
        rng.EntireRow.Copy sh.Cells(sh.Rows.Count, "A").End(xlUp).Offset(1)
        .AutoFilterMode = False
    End With

End Sub

非常感谢您的回复,从您的代码中,我将使用“s”变量部分在我的VBA中使用它,它工作得很好
'Word to look up s=“*SFB*”如果列E=“Word to found”中的值,则复制整行以打开If Range(“E”和CStr(LSearchRow))。值类似于s然后
Thx
Sub FiltExample()
    Dim ws As Worksheet, sh As Worksheet
    Dim rws As Long, rng As Range
    Set ws = Sheets("Data")
    Set sh = Sheets("SFB")

    Application.ScreenUpdating = 0

    With ws
        rws = .Cells(.Rows.Count, "E").End(xlUp).Row
        .Range("E:E").AutoFilter Field:=1, Criteria1:="=*network*"
        Set rng = .Range("A2:Z" & rws).SpecialCells(xlCellTypeVisible)
        rng.EntireRow.Copy sh.Cells(sh.Rows.Count, "A").End(xlUp).Offset(1)
        .AutoFilterMode = False
    End With

End Sub