Obsidean_VM/01-Documentation/Scripts Excel - VBA/Excel - VBA - ExtraerNumero.md

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