Можем ли мы использовать поиск по диапазону для поиска по нескольким словам? Трещина() - PullRequest
0 голосов
/ 30 марта 2020

В моем коде, когда пользователь вводит в поле подсказки «wifi router», код ищет это в текстовом «DrayTek wifi Vigor 2760 (Ethe rnet, ADSL2 +) router».

В этом Код ситуации не будет иметь никакого выхода.

Могу ли я сделать свой rng.Find, чтобы отделить Wi-Fi и маршрутизатор, и искать в тексте, и если он найдет Wi-Fi и маршрутизатор выведет?

В Другими словами: может ли rng.Find взять «AB», разделить эти два и вывести только если A и B найдены (вместе или по отдельности)? Можно ли как-нибудь использовать Split ()?

firstWord = InputBox("Enter word for bullet_points", "Keyword BOX")
    secondWord = InputBox("Enter word for item_name", "Keyword BOX")
    thirdWord = InputBox("Enter word for product_description", "Keyword BOX")




    LastRow1 = Cells(Rows.Count, 8).End(xlUp).Row + 1
    If firstWord = "" Then
    ActiveSheet.Cells(LastRow1, 8).Value = "No INPUT"
    Else
    ActiveSheet.Cells(LastRow1, 8).Value = firstWord
    End If


    LastRow2 = Cells(Rows.Count, 9).End(xlUp).Row + 1
    If secondWord = "" Then
    ActiveSheet.Cells(LastRow2, 9).Value = "No INPUT"
    Else
    ActiveSheet.Cells(LastRow2, 9).Value = secondWord
    End If


    LastRow3 = Cells(Rows.Count, 10).End(xlUp).Row + 1
    If thirdWord = "" Then
    ActiveSheet.Cells(LastRow3, 10).Value = "No INPUT"
    Else
    ActiveSheet.Cells(LastRow3, 10).Value = thirdWord
    End If



    With ws
        If firstWord <> "" Then ReplaceText ws.Range("B17:B1017"), firstWord
        If secondWord <> "" Then ReplaceText ws.Range("C17:C1017"), secondWord
        If thirdWord <> "" Then ReplaceText ws.Range("D17:D1017"), thirdWord
    End With



    Exit Sub

Whoa:
    MsgBox Err.Description

    End Sub

Private Sub ReplaceText(rng As Range, txt As String)



    Dim aCell As Range
    Dim bCell As Range
    Dim rngFound As Range



    Set aCell = rng.Find(What:=txt, LookIn:=xlValues, _
                LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, SearchFormat:=False)


    If Not aCell Is Nothing Then
        Set bCell = aCell
        Set rngFound = aCell

        Do
            Set aCell = rng.FindNext(After:=aCell)

            If Not aCell Is Nothing Then
                If aCell.Address = bCell.Address Then Exit Do
                Set rngFound = Union(rngFound, aCell)
            Else
                Exit Do
            End If
        Loop
    End If



    If Not rngFound Is Nothing Then
        rngFound.Value = "XXXXXXXXXXXXX"
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...