Obsidean_VM/01-Documentation/Scripts Excel - VBA/Script Excel - VBA - Extrae...

1.2 KiB

ExtractNumber Function

Description

The ExtractNumber function extracts a numeric value from a string, ignoring any leading letters. The function supports decimal numbers and negative values.

Syntax

ExtractNumber(text As String) As Double

```pascal
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