Я пытаюсь написать функцию для excel 2010, которая возьмет ячейку неструктурированного текста, ищите что-то, называемое значением sdi, и, если найдено, верните это число. Значение sdi будет отображаться как sdi ####. То, что я хочу, это вернуть sdi и выделенные для него номера, поэтому, если ячейка содержит "некоторый текст sdi 1234 еще текст", функция вернет sdi 1234.
Это моя функция:
Function SdiTest(LookIn As String) As String
Dim temp As String
Dim STA As Object
temp = ""
Set SDI = CreateObject("VBScript.RegExp")
SDI.IgnoreCase = True
SDI.Pattern = "sdi [1-9]*"
SDI.Global = True
If SDI.Test(LookIn) Then
temp = SDI.Execute(LookIn)
End If
SdiTest = temp
End Function
Если нет номера sdi, он никогда не входит в оператор if и добросовестно возвращает пустую строку. Если есть номер sdi, я получаю #VALUE!
Что мне не хватает?
Да, VBScript включен. Кроме того, мне кажется неудобным использовать регулярное выражение в VBA и сложно найти полезную информацию в Интернете. Ссылки на хорошие онлайн-ресурсы будут оценены.
Спасибо