VBA: найти слово в строке из ячейки; - PullRequest
0 голосов
/ 14 марта 2019

Мне нужна функция, чтобы определить, существует ли слово из; -ограниченной ячейки в другой; -ограниченной ячейке.Например, моя ячейка A1 может содержать «Италия; Финляндия» или просто «Финляндия».Моя колонка B содержит несколько ячеек со странами, например, «Швейцария; Нидерланды; Бельгия; Финляндия; Франция».

Мне нужна функция, чтобы сказать мне, была ли Италия или Финляндия обнаружена в ячейках в B-столбец и вернуть ИСТИНА или ЛОЖЬ.

Ответы [ 3 ]

0 голосов
/ 14 марта 2019

Может быть, это того стоит, если вы используете Sheet1

Function FindCountry() As Boolean
Dim Country As Range

With Worksheets("Sheet1").Columns(2)
    Set Country = .Find(What:=Worksheets("Sheet1").Cells(1, 1), _
        LookIn:=xlValues, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        Lookat:=xlWhole)
End With

FindCountry = False
If Country.Value = "Italy" Or Country.Value = "Finland" Then
    FindCountry = True
End If

End Function
0 голосов
/ 15 марта 2019

На самом деле я смог заставить его работать точно в соответствии с моими потребностями, немного изменив ваш код, поэтому большое спасибо!

Function RetrieveKeys(Find_txt As String, In_txt As Range)

    Dim countries() As String

    countries = Split(Find_txt, ";")
    RetrieveKeys = ""
    For j = 0 To UBound(countries)

        Set FindStat = In_txt.Find(countries(j), LookIn:=xlValues)
        If FindStat Is Nothing Then
            RetrieveKeys = "FALSE"
        Else
            RetrieveKeys = "TRUE"
        End If
    Next j

End Function
0 голосов
/ 14 марта 2019

Я не уверен, что это именно то, что вы ищете, но, возможно, это поможет вам на этом пути.

Function FindSubstr(CellIn)

    Dim countries() As String

    countries = Split(CellIn, ";")
    FindSubstr = ""
    NewLine = ""
    For j = 0 To UBound(countries)
        '************************************************************************************
        '* Find the String in column B
        '************************************************************************************
        Set FindStat = Range("B:B") _
                    .Find(countries(j), LookIn:=xlValues)
        NewLine = vbLf
        If FindStat Is Nothing Then
            FindSubstr = FindSubstr + NewLine + countries(j) + " False"
        Else
            FindSubstr = FindSubstr + NewLine + countries(j) + " True"
        End If

    Next j

End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...