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

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

Eu tenho uma planilha parecida com esta -

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

A célula C3tem o ponteiro de erro verde e diz "O número nesta célula está formatado como texto ou precedido por um apóstrofo" e, claro, está justificado à esquerda.

Quando exibo o formato das células C2e C3, ambos são exibidos como "Geral".

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

A propósito, estou usando o Office 2010.

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

Responder1

Isso pode acontecer quando o Excel pensa que o número está armazenado como texto (mesmo que diga que não, mesmo que você altere o formato para número) porque estava mal codificado na outra extremidade.

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

=$C2*1

E basta arrastar para baixo e consultar isso. Se você estiver trabalhando com uma tabela conectada em tempo real, ter esta coluna no final da tabela significará que o intervalo da fórmula se expandirá com o intervalo de dados.


Claro que com o VBA você poderia executar um loop que percorre os dados substituindo cada valor da coluna pelo resultado desta fórmula.

Responder2

Aqui está um trecho de VBA que resolverá o problema.

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

O tratamento de erros ocorre apenas no caso de você ter texto real no intervalo especificado.

Responder3

Muitas vezes, isso pode acontecer ao copiar, colar ou importar 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 sobre que tipo de dados algo é.

A maneira de fazer isso é:

  1. Destaque uma coluna com este problema

  2. Escolha Data->Text To Columns

  3. Clique em Finish(Os padrões funcionam para este caso - eles são Delimitados-> Guia -> Geral (formato)). Se você tivesse que fazer o inverso (reimportar números, mas forçá-los a serem tratados como texto), você alteraria a terceira opção para Texto

informação relacionada