VBA Tips - Extraindo parte de um texto - Por delimitação


É muito comum quando estamos efetuando alguma higienização dos dados, querermos retirar parte de um texto contido em algum campo, por exemplo:

Suponha que deseja acertar a sua base de dados de endereço e para isso necessite corrigir os endereços de acordo com a base disponibilizada. alguns endereços contém a string "- - " que indica a numeração de alcance do CEP, informando onde começa e até onde vai a respectiva numeração. Isso não é nada útil no seu cadastro, pois deseja apenas o nome correto da Rua. Aqui surge a pergunta:

Como faço para que retornar apenas a parte do endereço que desejo, ignorando o restante que não necessito?

AVENIDA PRESIDENTE GETÚLIO VARGAS - - de 1182 a 1732 - lado par
AVENIDA PRESIDENTE GETÚLIO VARGAS 

RUA DA JUVENTUDE - - até 678/679
RUA DA JUVENTUDE 

RUA AMARALINA - - de 1391/1392 ao fim
RUA AMARALINA 

RUA MINISTRO ALFREDO BUZAIDE - - de 547/548 ao fim
RUA MINISTRO ALFREDO BUZAIDE 

Supondo que o nome seja ''ENDERECO", a sintaxe seria: BetterCompare ([ENDERECO];" -")

Function BetterCompare (nFrase As Variant, nExclude As Variant) As String
    Dim nSize As Variant
    Dim nInitXtract As Variant
    
    If InStr (1, nFrase, nExclude) <> 0 Then
        Let nSize = Len (nFrase)
        Let nInitXtract = InStr (1, nFrase, nExclude)
        Let BetterCompare = Mid (nFrase, 1, nInitXtract)
    Else
        Let BetterCompare = nFrase
    End If
End Function


Tags: VBA, Tips, deduplicação, higienização, correio, endereço




Nenhum comentário:

Postar um comentário

diHITT - Notícias