Hola sailepaty fíjate que la función es SoloNumeros y su resultado OnlyNumbers lo que seguro que pasa por manejar dos idiomas.
Todas las soluciones aportadas obtienen todos los números juntos de la cadena, por ejemplo para:
A1 = ABCD1234EF567GH
=SoloNumeros(A1) = 1234567
Con lo que aparecen concatenados los dos números.
Function GetNum(ByVal txt As String, ByVal ref As Long) As Double
With CreateObject("VBScript.RegExp")
.Global = True
If ref > 0 Then
.Pattern = "\d+(\.\d+)?"
GetNum = .Execute(txt)(ref - 1)
Else
.Pattern = "\D"
GetNum = .Replace(txt, "")
End If
End With
End Function[/CODE]
Con esta función se obtiene:
=GetNum(A1;1) = [b]1234[/b]
=GetNum(A1;2) = [b]567[/b]
=GetNum(A1;0) = [b]1234567[/b]
El segundo argumento indica qué número se va a separar y si es <=0 no los separa.
Sirve para n números separados por caracteres alfabéticos.