Em uma tarefa recente, eu estava filtrando por meio do VBA em uma coluna de número. Mas essa coluna de número tinha números em formato de texto. Quando eu executei o script VBA, é claro que não funcionou, porque o filtro era um número e a coluna tinha números como texto. Nesse caso, precisei converter o texto em números manualmente e salvá-lo. Então a macro funcionou perfeitamente. Mas eu queria converter esses textos em números usando o script VBA e fui capaz de fazer isso. Eu queria compartilhar isso como se alguém quisesse saber como converter valores de texto em um número usando o VBA, eles poderiam dar uma olhada.
Converter texto em número usando o método Range.NumberFormat
Este primeiro e mais fácil método. Eu prefiro esse método a outros métodos, pois ele converte diretamente o intervalo selecionado do Excel em formato de número.
Portanto, se você tiver um intervalo fixo que deseja converter em texto, use este trecho de VBA.
Sub ConvertTextToNumber () Range ("A3: A8"). NumberFormat = "General" Range ("A3: A8"). Value = Range ("A3: A8"). Value End Sub
Quando você executa o código acima, ele converte o texto do intervalo A3: A8 em texto.
Este código pode parecer mais elegante se o escrevermos assim.
Sub ConvertTextToNumber () With Range ("A3: A8") .NumberFormat = "Geral" .Value = .Value End With End Sub
Como funciona?
Bem, é bastante simples. Primeiro alteramos o formato do número do intervalo para Geral. Em seguida, colocamos o valor desse intervalo no mesmo intervalo usando VBA. Isso remove a formatação do texto completamente. Simples, não é?
Alterar o número de formatação de um intervalo dinâmico
No código acima, mudamos o texto para um número no código acima de um intervalo fixo, mas esse não será o caso na maioria das vezes. Para converter texto em vários intervalos dinâmicos, podemos avaliar a última célula usada ou selecionar o intervalo dinamicamente.
É assim que ficaria:
Sub ConvertTextToNumber () With Range ("A3: A" & Cells (Rows.Count, 1) .End (xlUp) .Row) .NumberFormat = "General" .Value = .Value End With
Aqui, eu sei que o intervalo começa em A3. Mas não sei onde isso pode terminar.
Portanto, identifico dinamicamente a última linha usada do Excel que contém dados usando o fragmento Cells do VBA (Rows.Count, 1) .End (xlUp) .Row. Ele retorna o último número de linha usado que estamos concatenando com "A3: A".
Observação: Este snippet VBA funcionará na pasta de trabalho ativa e na planilha ativa. Se o seu código alternar entre várias planilhas, seria melhor definir um objeto de intervalo da planilha pretendida. Assim
Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1) .End (xlUp) .Row) With Rng .NumberFormat = "General" .Value = .Value End With End Sub
O código acima sempre mudará o texto para o número da planilha1 da pasta de trabalho que contém esse código.
Loop e CSng para alterar o texto para número
Outro método é percorrer cada célula e alterar o valor da célula para um número usando a função CSng. Aqui está o código.
Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1) .End (xlUp) .Row) Para cada célula em Rng.Cells cel.Value = CSng (cel.Value) Next cel End Sub
No fragmento de VBA acima, estamos usando o loop VBA For para iterar sobre cada célula no intervalo e converter o valor de cada célula em um número usando a função CSng do VBA.
Então, sim pessoal, é assim que você pode transformar textos em números no Excel usando o VBA. Você pode usar esses fragmentos para preparar sua planilha antes de fazer qualquer operação numérica neles. Espero ter sido suficientemente explicativo. Você pode baixar o arquivo de trabalho aqui.
Alterar texto para número usando VBA.
Se você tiver alguma dúvida em relação a este texto para conversão numérica ou qualquer outra consulta relacionada ao excel / VBA, pergunte na seção de comentários abaixo.
Como obter texto e número em reverso por meio do VBA no Microsoft Excel | Para reverter número e texto, usamos loops e função mid no VBA. 1234 será convertido para 4321, "você" será convertido para "uoy". Aqui está o trecho.
Formate dados com formatos de números personalizados usando VBA no Microsoft Excel | Para alterar o formato de número de colunas específicas no Excel, use este trecho de VBA. Abrange o formato de número do formato especificado para o formato especificado em um clique.
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.
A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.
CONT.SE no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.
Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.