Como converter unha cadea en número en Excel VBA (3 métodos)

  • Comparte Isto
Hugh West

Neste artigo, discutiremos varios métodos para converter unha cadea en número en Excel VBA. Veremos como usar as funcións integradas e crear unha función personalizada usándoas para converter unha cadea en número con exemplos de código VBA.

Descargar o libro de prácticas

Descarga este caderno de prácticas para facer exercicio mentres lees este artigo.

Converter cadea en número.xlsm

3 xeitos de converter cadea en número en Excel VBA

1. Converter cadea en número mediante funcións de conversión de tipos

Excel ofrece varias funcións de conversión de tipos integradas . Podemos usalos no noso código VBA para converter facilmente de tipo de datos de cadea a diferentes tipos de datos.

1.1 String to Integer

Para converter string to integer , podemos usar a función CInt no noso código. A función CInt só toma un argumento e ese debería ser un valor numérico . Probemos o seguinte código no Visual Code Editor.

8792

Preme F5 para executar o código . A saída móstrase no MsgBox .

A función CInt converteu a cadea numérica valor (“12.3” ) a un enteiro 12.

Para entender máis sobre a función CInt , execute o seguinte código no editor de código e observe os resultados .

9495

A saída está aquí noseguinte captura de pantalla .

Explicación do código

Neste código, usamos o Para... Seguinte bucle para aplicar a función CInt nas cadeas de celas B3:B7. As saídas están impresas nas celas C3:C7. Utilizamos a función de celas para especificar os valores de entrada e onde imprimir os valores de saída.

Resultados

A función CInt converteu 25,5 no número enteiro seguinte 26 . Por outra banda, converteu 10,3 en 10, non 11 . Cando un valor numérico decimal é inferior a 0,5, a función redondea ata o mesmo número. Pero o valor da cadea numérica decimal convértese no número enteiro seguinte se é igual a ou maior que .5.

Nota

O valor enteiro ten un intervalo entre -32.768 e 32.767 . Se poñemos un valor numérico que está fóra deste intervalo , Excel mostrará un erro .

1.2 String to Long

A función CLng converte un valor de cadea numérico nun tipo de datos longo . Funciona de xeito similar á función CInt. A diferenza fundamental reside no seu intervalo que está entre -2.147.483.648 e 2.147.483.647.

The code to run is here below:2418

Aquí, as celas B3:B9 conteñen algún valor de cadea numérica e os l números convertidos están nas celas C3:C9. A función CLng convertida -32800 e 32800 con éxito a números longos que a función CInt non puido. Pero tamén terá un erro se o valor numérico de entrada está fóra do intervalo.

1.3 String to Decimal

Utilizando a función CDec podemos convertir un valor de cadea numérica a un tipo de datos decimal. Executa o seguinte código para converte os valores numéricos das celas B3:B7 ao tipo de datos decimal.

8118

1.4 String to Single

Neste exemplo, converteremos as cadeas de entrada en tipo de datos único (single -números de coma flotante de precisión). Para iso, necesitamos usar a función CSng .

Os intervalos de tipos de datos únicos- (i)  -3,402823E38 a -1,401298E-45 para números negativos.

(ii) 1.401298E-45 a 23. números positivos.

Execute o seguinte código no editor de Visual Basic.

8112

Na saída, as celas B3:B9 contén algún valor de cadea numérico, e números de tipo de datos únicos convertidos están nas celas C3:C9. Pero tamén terá un erro se a entrada valor numérico está fóra do intervalo.

1.5 String to Double

Neste exemplo, converteremos as cadeas de entrada en double datatype (flotante de dobre precisión). -punto) números. Para iso necesitamospara usar a función CDbl .

O tipo de datos dobre varía- (i) -1,79769313486231E308 a -4,94065645841247E-324 para números negativos.

(ii) 4.94065645841247E-3247E-3247E-3247E-3247E-324>número <4.94065645841247E-3247E-324 para <4.947E-324>números <4.94065645841247E-3247E-324 para <462>14.14.7336324. .

Execute o seguinte código no editor de Visual Basic.

8903

Na saída, as celas B3:B9 conteñen algúns o valor de cadea numérica e os números de tipo de datos dobres convertidos están nas celas C3:C9. Pero tamén aparecerá un erro se a entrada o valor numérico está fóra do intervalo.

1.6 String to Currency

O tipo de datos de moeda é útil cando os cálculos están relacionados co diñeiro . Ademais, se queremos máis precisión no cálculo fixo punto , o uso do tipo de datos de moeda é unha boa opción. Necesitamos usar a función CCur para converter unha cadea nun tipo de datos de moeda . O tipo de datos varía de -922,337,203,685,477,5808 a 922,337,203,685,477,5808.

Código a converter valor de cadea numérico 4> das celas B3:B7 a tipo de datos de moeda nas celas C3:C7 está a continuación.

9799

1.7 String to Byte

A función CByte converte os valores de cadea numéricos ao tipo de datos de byte que varía de 0 a 255.

O código é comosegue :

9803

Na saída, as celas B3:B9 conteñen algún valor de cadea numérico, e os números de tipo de datos de bytes convertidos están nas celas C3:C9. Pero tamén terá un erro se o valor numérico de entrada está fóra do intervalo.

Ler máis: Como converter unha cadea a longa usando VBA en Excel

Lecturas similares

  • Converter unha cadea a dobre en Excel VBA (5 métodos)
  • Como converter texto a número con Excel VBA (3 exemplos con macros)
  • Corrixir o erro de conversión a número en Excel (6 métodos)
  • Como converter a notación científica en número en Excel (7 métodos)

2. Uso da función VBA personalizada para comprobar e converter cadeas en número en Excel

Nesta ilustración, imos facer unha función personalizada para converter cadeas a números. Despois podemos utilizar esta función personalizada na nosa folla de traballo como unha función integrada . Neste exemplo, usaremos a función CInt para converter cadeas en números enteiros mentres creamos a función personalizada. Tamén poderiamos usar todas as outras funcións descritas no método 1 para converter cadeas en distintos tipos de datos . Agora, siga os pasos seguintes para conseguilo.

Pasos:

  • Aquí, nas celas B3:B7, temos algúns cadea numéricavalores.

  • Agora, no editor de Visual Basic, copia e pega o seguinte código e despois  preme Ctrl + S para gardar
9160
  • Na cela C3 , comece a escribir o nome da función ( StringToNumber ). Excel suxerirá automaticamente a función a usar. Preme a tecla Tab para entrar na función.

  • Poña a referencia da cela B3 como único argumento.

  • Agora, preme Intro despois de pechar os parénteses.

  • Localiza o Recheo na esquina inferior dereita da cela C3 para aplicar a función ás celas C4:C7.

  • O resultado final son os codiciados números enteiros dos valores de cadea .

3. Código VBA para converter un intervalo seleccionado de celas en números en Excel

Nesta ilustración, converteremos un rango de celas seleccionadas contén valores de cadea a números enteiros. Se algunha cela contén un valor non numérico nela, a saída será unha liña guión (-) no seu lugar . Siga os pasos :

  • Seleccione celas B3:B6 con cadeas numéricas valores e B7 que conteñan un non numérico

  • No Editor de Visual Basic copia e pega o seguinte código .
8980
  • Agora, prema F5 para executar a saída como se mostra en a seguinte captura de pantalla .

Notas

  • Utilizamos o isFunción numérica nos 2º e 3º métodos no noso código VBA que verifica se unha expresión se pode converter nun número.
  • No método 1 , usamos funcións integradas (CInt, CDbl, CSng...) para converter valores de cadea numérica en números . Pero se hai un valor non numérico , mostrará un erro de falta de coincidencia .

Conclusión

Agora, sabemos como converter valores de cadea en números en Excel. Con sorte, animaríache a usar esta función con máis confianza. Calquera pregunta ou suxestión non esquezas poñelas na caixa de comentarios a continuación.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.