Macro convertir celdas almacenadas como texto a número excel visual basic

Estoy con una macro para convertir celdas almacenadas como texto a número, solo tengo que hacer esta comprobación en algunas columnas. El caso es que la primera opción que he usado en el caso de que la celda sea un número con más de dos decimales me lo convierte a miles, o en algunas celdas no hace nada y en la segunda opción no me funciona (multiplicar las celdas por uno)

Primera opción (aquí le he dicho que me la aplique en las celdas seleccionadas. No funciona bien)

For Each celda in Selection

Celda.Value = Cstr (celda)

Next Celda

¿Alguna sugerencia?

3 respuestas

Respuesta
1

Celda.Value = Cstr (celda)

La función Cstr convierte un número a texto.

Y lo que necesitas es una función que convierta el texto a número.

Prueba la siguiente:

Sub tst()
  Dim celda As Range
  For Each celda In Selection
    If IsNumeric(celda) Then
      celda.Value = CDbl(celda)
    End If
  Next celda
End Sub
Respuesta
1

Esto te puede ser útil:

Una manera sencilla es multiplica por 1 y listo

Mira otras formas

https://www.youtube.com/watch?v=iXeRddA9kcU&list=PLdK9H5dMIfQhn9waYbEdu3DYAuBdSCIBx

Respuesta
1

Podría hacer una validación como este ejemplo adecuándolo a sus datos

    If IsNumeric(Tex) Then
        Range("A12").Value = Format(Tex, "##,##0.00")
    Else
    End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas