Te haz encontrado que con frecuencia necesitas extraer valores numéricos ubicados en diferentes posiciones en una cadena de texto y tienes que hacer hasta lo imposible para extraerlos. Deja de preocuparte, que con esta fórmula que estas por ver te será más fácil la vida cuando se trate de extraer montos ubicados en posiciones no uniformes.
Copia y pega el código VBA en un módulo estandar en tu libro de Excel y la fórmula estará disponible en tu libro.
Para llamar la fórmula utiliza esta sintáxis:
=ExtraeValor(Celda donde se encuentra el valor, Posición del valor a extraer)
=ExtraeValor(A2,3)
Decargar xls
Copia y pega el código VBA en un módulo estandar en tu libro de Excel y la fórmula estará disponible en tu libro.
Para llamar la fórmula utiliza esta sintáxis:
=ExtraeValor(Celda donde se encuentra el valor, Posición del valor a extraer)
=ExtraeValor(A2,3)
Decargar xls
Código VBA:
'****************************************'
' Email: obed.cruz@exceltrabajaporti.com '
' www.exceltrabajaporti.com '
'****************************************'
Option Explicit
Function ExtraeValor(varValor As Variant, iPos As Integer)
Dim RegEx As Object, objMatch As Object
Set RegEx = CreateObject("Vbscript.RegExp")
With RegEx
.MultiLine = True
.Pattern = "\d+.?\d+"
.Global = True
If .test(varValor) Then
Set objMatch = .Execute(varValor)
If objMatch.Count >= iPos Then
ExtraeValor = objMatch(iPos - 1)
ExtraeValor = ExtraeValor * 1
End If
End If
End With
If ExtraeValor = Empty Then ExtraeValor = "¡No es valor numérico!"
End Function
Carrito:




