¿Cómo puedo cambiar el formato numérico de una celda en una tabla importada de una base de datos?

¿Cómo puedo cambiar el formato numérico de una celda en una tabla importada de una base de datos?

Tengo una hoja que se parece a esta:

    A  |     B      | C
   ----------------------
    2  |  Okay      |  0
    3  |  Not okay  | 0

La celda C3tiene el puntero de error verde y dice "El número en esta celda tiene formato de texto o está precedido por un apóstrofe" y, por supuesto, está justificado a la izquierda.

Cuando muestro el formato de ambas celdas C2y C3, ambas se muestran como "General".

Cuando uso VBA para examinar "NumberFormat", ambos aparecen como "General".

Por cierto, estoy usando Office 2010.

Me gustaría ordenar esto (esto sucede con docenas de celdas en varias hojas de trabajo) cambiando el formato de texto a general usando código VBA, pero ¿cómo puedo hacer esto si cree que las celdas en cuestión ya están formateadas como General? ?

Respuesta1

Esto puede suceder cuando Excel cree que el número está almacenado como texto (incluso si dice que no lo es, incluso si cambia el formato a número) porque estaba mal codificado en el otro extremo.

Una solución muy simplista para los números almacenados como texto es agregar una columna adicional con una fórmula que convierte el número en un número.

=$C2*1

Y simplemente arrástrelo hacia abajo y luego consúltelo. Si está trabajando con una tabla conectada en vivo, tener esta columna al final de la tabla significará que el rango de la fórmula se expandirá con el rango de datos.


Por supuesto, con VBA puedes ejecutar un bucle que recorra los datos reemplazando cada valor de la columna con el resultado de esta fórmula.

Respuesta2

Aquí hay un fragmento de VBA que funcionará.

Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")

For Each c In r
    On Error Resume Next
    c.Value = CDbl(c.Value)
Next c
End Sub

El manejo de errores es solo en caso de que tenga texto real en el rango especificado.

Respuesta3

Esto puede suceder a menudo al copiar y pegar o importar datos. Si se trata de una columna completa, la mejor manera de solucionarlo es básicamente volver a importar la columna con mayor control sobre las suposiciones de Excel sobre qué tipo de datos es algo.

La forma de hacer esto es:

  1. Resalte una columna con este problema

  2. Elija Data->Text To Columns

  3. Haga clic en Finish(Los valores predeterminados funcionan para este caso; están Delimitados-> Pestaña -> General (formato)). Si alguna vez tuvieras que hacer lo contrario (volver a importar números pero obligarlos a ser tratados como texto), cambiarías la tercera opción a Texto.

información relacionada