Táboa de contidos
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.