Eliminar el texto no numérico: Primero, necesita eliminar las letras y el espacio al final (" KN") para dejar solo el número.
Reemplazar la coma por punto: En algunos contextos de programación, el separador decimal es el punto (.) En lugar de la coma (,). Por lo tanto, si sus números están en formato europeo con comas como separador decimal, necesitará reemplazar las comas por puntos.
Convertir a número: Finalmente, convierte la cadena resultante en un valor numérico. Esta función le sirve
Function ConvertirANumero(campoTexto As String) As Double
Dim numeroTexto As String
Dim valorNumerico As Double
' Eliminar " KN" al final del texto
numeroTexto = Left(campoTexto, Len(campoTexto) - 3)
' Reemplazar la coma (,) por punto (.) si es necesario
numeroTexto = Replace(numeroTexto, ",", ".")
' Convertir el texto a un valor numérico
valorNumerico = CDbl(numeroTexto)
' Devolver el valor numérico
ConvertirANumero = valorNumerico
End Function
Ejemplo de llamada
¿
? ConvertirANumero("2.042,950 KN") retorna 2042950
Explicación del código:
Function ConvertirANumero(campoTexto As String) As Double: Define una función llamada ConvertirANumero que acepta un parámetro campoTexto de tipo String y devuelve un valor numérico (Double).
NumeroTexto = Left(campoTexto, Len(campoTexto) - 3): Utiliza la función Left para obtener una parte de campoTexto, desde el inicio hasta Len(campoTexto) - 3. Esto elimina los últimos 3 caracteres, que corresponden a " KN".
NumeroTexto = Replace(numeroTexto, ",", "."): Utiliza la función Replace para reemplazar todas las comas (,) en numeroTexto por puntos (.). Esto es necesario si tus números utilizan comas como separador decimal.
ValorNumerico = CDbl(numeroTexto): Utiliza la función CDbl para convertir numeroTexto en un valor numérico de tipo Double.
ConvertirANumero = valorNumerico: Devuelve el valor numérico calculado por la función