1.1 KiB
1.1 KiB
Description
The ExtractNumber function extracts a numeric value from a string, ignoring any leading letters. The function supports decimal numbers and negative values.
Syntax
Public Function ExtraerNumero(texto As String) As Double
Dim i As Long
Dim numeroStr As String
Dim caracter As String
' Recorrer cada caracter del string
For i = 1 To Len(texto)
caracter = Mid(texto, i, 1)
' Verificar si el caracter es un número, punto decimal o signo negativo
If caracter = "." Then
numeroStr = numeroStr & ","
' Si ya empezamos a capturar números y encontramos una letra, terminamos
ElseIf IsNumeric(caracter) Or caracter = "." Or (caracter = "-" And numeroStr = "") Then
numeroStr = numeroStr & caracter
' Si ya empezamos a capturar números y encontramos una letra, terminamos
ElseIf numeroStr <> "" Then
Exit For
End If
Next i
' Si encontramos un número, convertirlo a Double
If numeroStr <> "" Then
ExtraerNumero = CDbl(numeroStr)
Else
ExtraerNumero = 0
End If
End Function