Необходимо создать функцию VBA, которая имитирует REGEXP_INSTR
или REGEXP_LIKE
в Oracle. Они позволяют искать слова в строке без необходимости повторять слово за словом.
Я нашел этот код, который находит имена, начинающиеся с "Mr | Mrs | Ms | Dr", что означаетиспользуется как:
Function StringStarts(strCheck As String, options As String) As Boolean
With CreateObject("VBScript.RegExp")
.IgnoreCase = True
.Pattern = "^(" & options & ")\.*\b"
StringStarts = .Test(strCheck)
End With
End Function
Debug.print StringStarts("Dr leopoldo malmeida", "Mr|Mrs|Ms|Dr")
На самом деле, мне нужна помощь, чтобы найти, можно ли изменить эту функцию, чтобы найти любое слово или части слов (сопоставление без учета регистра), вшаблон в любом месте строки для поиска. Например:
Debug.print StringStarts("Looking for multiple words", "Word|like|for")
Это должно вернуть true: «Слово найдено в« словах »»;msgstr "для полного совпадения в строке".