Bom dia Vidoti
Não está muito claro para mim o que vc pretende extrair. Também tem algumas inconsistências entre o texto a ser extraído e o texto que vc extraiu. Por exemplo, no campo "Separação Localidade", por que o último item extraído começa com "L-br" e não "e-br"? Também nesse item, de onde surgiu o "-ba-"? Ainda no mesmo campo, em todas as linhas daquela coluna, está inserido uma partícula de dois caracteres estranhos ao contexto: depois de br- ou bra- aparece ir ou rt ou ti. De onde surgiram ou qual a regra?
Enquanto isso, teste o seguinte código inserindo-o em um módulo no VBA:
Option Explicit
Const ER = "^.*? (w w{2} w{2,} w{2,} w{2,} d{2}) (ex d/d/d) ([A-Z]+.d{2}) (CE d+) (IEDL d+) ?$"
Dim rgx As Object
Function Separação(ByVal Texto As String, TipoInfo As Byte) As String
' Para retornar cada informação, use os valores abaixo para TipoInfo:
' Localidade: 1
' Interface: 2
' Trans Endereço: 3
' Trans CE: 4
' Trans IEDL: 5
If rgx Is Nothing Then Set rgx = CreateObject("VBScript.RegExp")
With rgx
.Global = True: .Pattern = "-": Texto = .Replace(Texto, " ")
.Global = False: .IgnoreCase = False: .Pattern = ER
If .Test(Texto) Then Separação = .Execute(Texto)(0).SubMatches(TipoInfo - 1)
End With
End Function
Use a Função acima como se fosse uma função normal do Excel. Por exemplo,
na célula B2 insira a fórmula =Separação(A2;1)
na célula C2 insira a fórmula =Separação(A2;2)
e assim por diante até F2 com a fórmula =Separação(A2;5)
depois arraste as fórmulas para baixo.
Postado : 02/12/2019 10:24 am