VBA – Extrair Número de uma Cadeia de Caracteres
Extrair Parte Numérica de uma Cadeia de Caracteres
A função a seguir extrairá a parte numérica de uma cadeia de caracteres:
Function Extrair_Numero_de_Texto(Frase As String) As Double
Dim Comprimento_String As Integer
Dim Posicao_Atual As Integer
Dim Temp As String
Comprimento_String = Len(Frase)
Temp = ""
For Posicao_Atual = 1 To Comprimento_String
If (Mid(Frase, Posicao_Atual, 1) = "-") Then
Temp = Temp & Mid(Frase, Posicao_Atual, 1)
End If
If (Mid(Frase, Posicao_Atual, 1) = ",") Then
Temp = Temp & Mid(Frase, Posicao_Atual, 1)
End If
If (IsNumeric(Mid(Frase, Posicao_Atual, 1))) = True Then
Temp = Temp & Mid(Frase, Posicao_Atual, 1)
End If
Next Posicao_Atual
If Len(Temp) = 0 Then
Extrair_Numero_de_Texto = 0
Else
Extrair_Numero_de_Texto = CDbl(Temp)
End If
End Function
Assim, por exemplo:
Extrair_Numero_de_Texto(“uuigguo 995”) retornará 995
Extrair_Numero_de_Texto(“uuigguo 0,12995”) retornará 0,12995
Extrair_Numero_de_Texto(“yu00,000456”) retornará 0,000456
=Extrair_Numero_de_Texto(“juii-0009,9987iihiii”) retornará -9,9987
Se não houver nenhum número na frase, será retornado um zero.
Para fazer download do arquivo .XLSM deste artigo, clique aqui.
Codificação VBA facilitada
Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!