Eu tenho a macro VB de trabalho que valida o conteúdo. São necessários dois parâmetros de string (valor de célula e expressão regular) e retorna True ou False. Usa CreateObject("VBscript.regexp")
internamente.
Eu preciso usar essa macro para validar a célula. Quando tento configurá-lo como um validador personalizado da maneira como
=Rex(E2, "\d{1,2}\:\d{2}")
onde Rex é minha função definida na mesma planilha (Alt-F11 e tipo) e E2 é uma célula que estou tentando validar, recebo a mensagem "Um intervalo nomeado especificado não pode ser encontrado".
Se eu inserir a mesma função em qualquer outro lugar na mesma planilha (digamos, na célula A1 do canto superior):
=Rex(E2, "\d{1,2}\:\d{2}")
o me mostra bem TRUE
se a célula E2 corrigir o valor correto como 15:07
e FALSE
se não gostar 15xx
- meio resolvido mas na verdade não até o final. Eu realmente preciso integrar meu validador de maneira padrão.
Estou usando o MS Excel 2010. A macro em si é
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
E o problema parece