Como posso alterar o formato numérico de uma célula em uma tabela importada pelo banco de dados?

2

Eu tenho uma planilha que se parece com isso -

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

A célula C3 tem o ponteiro de erro verde e diz "O número nessa célula é formatado como texto ou precedido por um apóstrofo" e, obviamente, é justificado à esquerda.

Quando exibo o formato das duas células C2 e C3 , ambas são exibidas como "Geral".

Quando uso o VBA para examinar “NumberFormat”, ambos aparecem como “Geral”.

Estou usando o Office 2010, a propósito.

Eu gostaria de arrumar isso (isso acontece com dezenas de células em várias planilhas) alterando o formato do texto para o geral usando código VBA, mas como posso fazer isso se ele acredita que as células em questão já estão formatado como geral?

    
por Garry Bristow 05.03.2014 / 11:08

3 respostas

2

Isso pode acontecer quando o Excel acha que o número é armazenado como texto (mesmo que ele diga que não é, mesmo se você alterar o formato para o número) porque foi mal codificado no outro lado.

Uma correção muito simplista para números armazenados como texto é adicionar uma coluna extra com uma fórmula que converte o número em um número.

=$C2*1

E apenas arraste isso para baixo, e então se refira a isso. Se você estiver trabalhando com uma tabela conectada ao vivo, ter essa coluna no final da tabela significa que o intervalo de fórmulas se expandirá com o intervalo de dados.


Claro que com o VBA você pode executar um loop que passa pelos dados substituindo cada valor na coluna pelo resultado dessa fórmula.

    
por 05.03.2014 / 15:59
2

Veja um snippet do VBA que fará o truque.

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

A manipulação de erros é apenas no caso de você ter texto real no intervalo especificado.

    
por 05.03.2014 / 16:23
0

Isso geralmente acontece ao copiar ou colar dados. Se for uma coluna inteira, a melhor maneira de corrigi-la é basicamente reimportar a coluna com maior controle sobre as suposições do Excel quanto ao tipo de dados que existe.

A maneira de fazer isso é:

  1. Realce uma coluna com este problema

  2. Escolha Data - > Text To Columns

  3. Clique em Finish (o trabalho de Padrões para este caso - eles são Delimitado- > Tabulação > Geral (formato)). Se você tivesse que fazer o contrário (reimportar números, mas forçá-los a serem tratados como texto), você mudaria a terceira opção para Text

por 05.03.2014 / 14:05