.
...A solução do EdsonBR no 2010 deixou várias células em branco...
Bem observado, JSCOPA. Isso ocorre por que interpretei assim o pedido do VandB :
...Algumas frases da coluna H são iniciadas pelos números 1, 2 ou 3. Estes não devem ser considerados como uma sequência numérica válida para a extração...
Entendi que se começasse com de 1 a 3 não deveria ser extraída qualquer numeração.
Mas querendo trazê-las também, é só alterar a Expressão Regular para:
^(?:(?:[^1-3]D+)|(?:[1-3] ?))(d+).*
O código ficaria:
Dim rgx As Object
Const ER = "^(?:(?:[^1-3]D+)|(?:[1-3] ?))(d+).*"
Function ExtraiNF(txt As String) As String
Application.Volatile
If rgx Is Nothing Then Set rgx = CreateObject("VBScript.Regexp")
rgx.Pattern = ER
If rgx.Test(txt) Then ExtraiNF = rgx.Execute(txt)(0).SubMatches(0)
End Function
Postado : 13/11/2019 12:29 pm