Taula de continguts
En aquest article, parlarem de diversos mètodes per convertir una cadena en nombre a Excel VBA. Veurem com utilitzar les funcions integrades i crear una funció personalitzada utilitzant-les per convertir cadena en nombre amb exemples de codi VBA.
Descarregueu el llibre de pràctiques
Baixeu aquest quadern de pràctiques per fer exercici mentre llegiu aquest article.
Converteix String a Number.xlsm
3 maneres de convertir String a Number en Excel VBA
1. Convertir cadena en nombre mitjançant funcions de conversió de tipus
Excel ofereix diverses funcions de conversió de tipus integrades. Els podem utilitzar al nostre codi VBA per convertir fàcilment de tipus de dades de cadena a diferents tipus de dades.
1.1 Cadena a enter
Per convertir cadena a enteger , podem utilitzar la funció CInt al nostre codi. La funció CInt només pren un argument i aquest hauria de ser un valor numèric . Provem el codi següent a l'Editor de codi visual.
5613
Premeu F5 per executar el codi . La sortida es mostra a MsgBox .
La funció CInt converteix el valor cadena numèrica 3>(“12.3” ) a un enter 12.
Per entendre més sobre la funció CInt , executeu el següent codi a l'editor de codi i observeu els resultats .
2385
La sortida és aquí alsegüent captura de pantalla .
Explicació del codi
En aquest codi, hem utilitzat el Per... Següent bucle per aplicar la funció CInt a les cadenes de cel·les B3:B7. Les sortides s'imprimeixen a les cel·les C3:C7. Hem utilitzat la funció Cèl·lules per especificar els valors d'entrada i on imprimir els valors de sortida.
Resultats
La funció CInt ha convertit 25,5 al número enter següent 26 . D'altra banda, va convertir 10,3 en 10, no 11 . Quan un valor numèric decimal és inferior a 0,5, la funció s'arrodoneix per baix al mateix nombre. Però el valor de la cadena numèrica decimal es converteix en el número enter següent si és igual a o més gran que .5.
Nota
El valor sencer té un interval entre -32.768 i 32.767 . Si posem un valor numèric que està fora d'aquest interval , Excel mostrarà un error .
1.2 Cadena a llarga
La funció CLng converteix un valor de cadena numèrica en un tipus de dades llarg . Funciona de manera similar a la funció CInt. La diferència clau rau en el seu interval que està entre -2.147.483.648 i 2.147.483.647.
The code to run is here below:2415
Aquí, les cel·les B3:B9 contenen algun valor de cadena numèrica i els l números convertits estan a les cel·les C3:C9. La funció CLng convertida -32800 i 32800 amb èxit a números llargs que la funció CInt no ha pogut. Però també rebrà un error si l'entrada valor numèric està fora de l'interval.
1.3 String to Decimal
Usant la funció CDec podem convertir a valor de cadena numèrica a tipus de dades decimal. Executeu el codi següent per convertir els valors numèrics de les cel·les B3:B7 al tipus de dades decimal.
3667.
1.4 String to Single
En aquest exemple, convertirem les cadenes d'entrada en tip de dades únic (únic -nombres de coma flotant de precisió). Per a això, hem d'utilitzar la funció CSng .
Els intervals de tipus de dades únics- (i) -3,402823E38 a -1,401298E-45 per a nombres negatius.
(ii) 1.401298E-45 a 23. números positius.
Executeu el codi següent a l'editor visual basic.
4975
A la sortida, les cel·les B3:B9 conté algun valor de cadena numèrica, i números de tipus de dades únics convertits es troben a les cel·les C3:C9. Però també obtindrà un error si l'entrada valor numèric es fora de l'interval.
1.5 String to Double
En aquest exemple, convertirem les cadenes d'entrada en doble tipus de dades (flotant de doble precisió -punt) nombres. Per a això, necessitemper utilitzar la funció CDbl .
Els intervals de tipus de dades dobles- (i) -1,79769313486231E308 a -4,94065645841247E-324 per nombres negatius.
(ii) 4.94065645841247E-3247E-3247E-324 4.94065645841247E-3247E-324 4.947E-324.4.936.933.positiu <4.932. .
Executeu el codi següent a l'editor visual basic.
2944
A la sortida, les cel·les B3:B9 contenen alguns valor de cadena numèrica i números de tipus de dades dobles convertits es troben a les cel·les C3:C9. Però també rebrà un error si l'entrada el valor numèric està fora de l'interval.
1.6 String to Currency
El tipus de dades de moneda és útil quan els càlculs estan relacionats amb diners . A més, si volem més precisió en el càlcul fix – punt , l'ús del tipus de dades de moneda és una bona opció. Hem d'utilitzar la funció CCur per convertir una cadena en un tipus de dades de moneda . El tipus de dades oscil·la entre des de -922,337,203,685,477,5808 a 922,337,203,685,477,5808.
Codi a convertir valor numèric 4> de les cel·les B3:B7 a tipus de dades de moneda a les cel·les C3:C7 es mostra aquí a continuació.
8697
1.7 String to Byte
La funció CByte converteix els valors numèrics de la cadena al tipus de dades de byte que oscil·la entre 0 a 255.
El codi és comsegueix :
1408
A la sortida, les cel·les B3:B9 conté algun valor de cadena numèrica, i números de tipus de dades d'octets convertits es troben a les cel·les C3:C9. Però també obtindrà un error si l'entrada valor numèric està fora de l'interval.
Llegiu més: Com convertir una cadena a llarga utilitzant VBA a Excel
Lectures similars
- Convertir una cadena a doble a Excel VBA (5 mètodes)
- Com convertir text a nombre amb Excel VBA (3 exemples amb macros)
- Corregir error de conversió a nombre a Excel (6 mètodes)
- Com convertir la notació científica en nombre a Excel (7 mètodes)
2. Ús de la funció VBA personalitzada per comprovar i convertir una cadena en nombre a Excel
En aquesta il·lustració, farem una funció personalitzada per convertir cadenes a números. Aleshores podem utilitzar aquesta funció personalitzada al nostre full de treball com una funció integrada . En aquest exemple, utilitzarem la funció CInt per convertir cadenes en nters mentre creem la funció personalitzada. També podríem utilitzar totes les altres funcions descrites al mètode 1 per convertir cadenes a diferents tipus de dades . Ara, seguiu els passos següents per aconseguir-ho.
Passos:
- Aquí, a les cel·les B3:B7, tenim alguns cadena numèricavalors.
- Ara, a l'editor visual basic, copieu i pegueu el codi següent i després premeu Ctrl + S per desar
3500
- A la cel·la C3 , comenceu a escriure el nom de la funció ( StringToNumber ). Excel suggerirà automàticament la funció a utilitzar. Premeu la tecla Tab per entrar a la funció.
- Poseu la referència de cel·la B3 com a únic argument.
- Ara, premeu Retorn després de tancar els parèntesis.
- Ubiqueu la Annexa d'ompliment a l' extrem inferior dret de la cel·la C3 per aplicar la funció a les cel·les C4:C7.
- La sortida final són els cobejats nombres enters dels valors de cadena .
3. Codi VBA per convertir un rang seleccionat de cel·les en números a Excel
En aquesta il·lustració, convertirem un interval de cel·les seleccionades que conté valors de cadena a nombres enters. Si alguna cel·la conté un valor no numèric , la sortida serà una línia guionada (-) en lloc de . Seguiu els passos :
- Seleccioneu cel·les B3:B6 que tinguin cadenes numèriques valors i B7 que conté un no numèric
- A l' Editor de Visual Basic copia i enganxeu el següent codi .
2874
- Ara, premeu F5 per executar la sortida tal com es mostra a la següent captura de pantalla .
Notes
- Hem utilitzat el isFunció numèrica en els mètodes 2n i 3r al nostre codi VBA que verifica si una expressió es pot convertir en un nombre.
- En el mètode 1 , hem utilitzat funcions integrades (CInt, CDbl, CSng...) per convertir valors de cadena numèrica a nombres . Però si hi ha un valor no numèric , mostrarà un error de concordança .
Conclusió
Ara, sabem com convertir valors de cadena en números a Excel. Amb sort, us animaria a utilitzar aquesta funcionalitat amb més confiança. Qualsevol pregunta o suggeriment no us oblideu de posar-los al quadre de comentaris a continuació.