у меня есть рабочий макрос VB, который проверяет содержимое. Он принимает два строковых параметра (значение ячейки и регулярное выражение) и возвращает значение True или False. Он использует CreateObject("VBscript.regexp")
внутренне.
мне нужно использовать этот макрос для проверки ячейки. Когда я пытаюсь установить его в качестве пользовательского валидатора путь
=Rex(E2, "d{1,2}:d{2}")
где Rex-моя функция, определенная на одном и том же листе распространения (Alt-F11 и type) , А E2-ячейка, которую я пытаюсь проверить, я получаю сообщение " именованный диапазон указанное не может быть найден".
если я вставляю ту же функцию в другом месте той же таблицы (скажем, в верхней угловой ячейке A1):
=Rex(E2, "d{1,2}:d{2}")
он показывает мне красиво TRUE
если ячейка E2 правильное значение, как 15:07
и FALSE
если не нравится 15xx
- половина решена, но на самом деле не до конца. Мне действительно нужно интегрировать мой валидатор стандартным способом.
я использую MS Excel 2010. Сам макрос
Public Function Rex(ByVal vsStringIn As String, ByVal vsPattern As String) As Boolean
Dim objRegEx As Object
Set objRegEx = CreateObject("VBscript.regexp")
objRegEx.Global = True
objRegEx.Pattern = vsPattern
Rex = objRegEx.Test(vsStringIn)
Set objRegEx = Nothing
End Function
и проблема выглядит так: