Поиск строки в столбце с разделителями-запятыми с помощью Excel VBA - PullRequest
0 голосов
/ 21 января 2020

в Excel VBA, мне нужно найти указанный c номер изделия в выбранном столбце. Столбец имеет номера участников, разделенные запятой. Данные в столбце выглядят примерно так:

Столбец A

ab, ca, ade, ar

ad, aw, dr ...

Когда я делаю Selection.Find в этом столбце для «объявления», он возвращает первую строку, в которой «ade» не может найти целую ячейку, поскольку в любой ячейке в этом столбце имеется более 1 номера детали Вот код, который я использую для выполнения этой задачи.

Set Cell = Selection.Find(What:=:"ad", after:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)  ' This is BUG that needs correction for xlPart

If Cell Is Nothing Then
        ….
End If

Каков наилучший и эффективный способ решения этой проблемы

Заранее спасибо за помощь ...:)

1 Ответ

0 голосов
/ 21 января 2020

Вы можете использовать основанную на RegExp функцию, как показано ниже

Public Function blCheckString(InputRange As Range, strChkString) As Boolean
Dim objRgEx As Object
Set objRgEx = CreateObject("VBScript.RegExp")
With objRgEx
    .Pattern = "\b" & strChkString & "\b"
    If .Test(InputRange.Value) Then
        blCheckString = True
    Else
        blCheckString = False
    End If
End With
Set objRgEx = Nothing
End Function

. Затем ее можно использовать в коде, как показано ниже.

Sub Test()
If blCheckString(Selection, "ad") Then
    MsgBox "Success"
Else
    MsgBox "No Success"
End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...