Ynhâldsopjefte
Yn dit artikel sille wy ferskate metoaden beprate om tekenrige te konvertearjen nei nûmer yn Excel VBA. Wy sille sjen hoe't jo de ynboude funksjes brûke en in oanpaste funksje meitsje dy't se brûke om string nei nûmer te konvertearjen mei foarbylden fan VBA-koade.
Download Practice Workbook
Download dit oefenwurkboek om te oefenjen wylst jo dit artikel lêze.
String konvertearje nei Number.xlsm
3 manieren om string nei nûmer te konvertearjen yn Excel VBA
1. String nei nûmer konvertearje mei typekonverzjefunksjes
Excel biedt ferskate ynboude typekonverzjefunksjes . Wy kinne se brûke yn ús VBA-koade om maklik te konvertearjen fan string datatype nei ferskillende datatypes.
1.1 String to Integer
Om string om te konvertearjen nei integer , kinne wy de CInt-funksje yn ús koade brûke. De CInt-funksje nimt mar ien argumint en dat moat in numerike wearde wêze. Litte wy de folgjende koade besykje yn 'e Visual Code Editor.
4521
Druk op F5 om út te fieren de koade . De útfier wurdt werjûn yn de MsgBox .
De funksje CInt konvertearre de numerike tekenrige wearde (“12.3” ) nei in integer 12.
Om mear te begripen oer de CInt-funksje , útfiere de folgjende koade yn 'e koade bewurker en observearje de resultaten .
2459
De útfier is hjir yn defolgjende skermôfbylding .
Koadetaljochting
Yn dizze koade hawwe wy de Foar... Folgjende loop om de CInt-funksje ta te passen op de snaren fan sellen B3:B7. De útfier wurde printe yn sellen C3:C7. Wy brûkten de Sellenfunksje om de ynfierwearden oan te jaan en wêr't de útfierwearden printsje moatte.
Resultaten
De funksje CInt konvertearre 25.5 nei it folgjende hiele getal 26 . Oan 'e oare kant konvertearre it 10.3 nei 10, net 11 . As in desimale numerike wearde minder is as .5, rûn de funksje del nei itselde getal. Mar de desimale numerike tekenrige wearde feroaret yn it folgjende hiele getal as it lyk is oan of grutter as .5.
Opmerking
De heule getalwearde hat in berik tusken -32.768 oant 32.767 . As wy in numerike wearde pleatse dy't bûten dit berik is, sil Excel in flater sjen litte.
1.2 String to Long
De CLng-funksje konvertearret in numerike tekenrigewearde nei in lang datatype . It wurket fergelykber mei de CInt-funksje. It wichtichste ferskil leit yn it berik dat is tusken -2,147,483,648 en 2,147,483,647.
The code to run is here below:8870
Hjir, sellen B3:B9 befette wat numerike tekenrigewearde , en omboude l onge nûmers binne yn sellen C3:C9. De CLng-funksje konvertearre -32800 en 32800 mei súkses nei lange nûmers dy't de CInt-funksje net koe. Mar it sil ek in flater krije as de ynfier numerike wearde buiten berik is.
1.3 String to Desimaal
Mei de CDec-funksje kinne wy konvertearje in numerike tekenrige wearde oant in desimaal datatype. Run de folgjende koade om de numerike wearden yn sellen B3:B7 te konvertearjen nei it desimale gegevenstype.
1322
1.4 String to Single
Yn dit foarbyld sille wy de ynfierstrings omsette yn single datatype (single -precision floating-point) nûmers. Hjirfoar moatte wy de CSng-funksje brûke.
It ienige datatype berikt- (i) -3.402823E38 oant -1.401298E-45 foar negative nûmers.
(ii) 1.401298E-45 oant E-45 3. positive nûmers.
Rin de folgjende koade út yn de fisuele basisbewurker.
4111
Yn de útfier, sellen B3:B9 befette wat numerike tekenrigewearde, en omboude inkele gegevenstypenûmers binne yn sellen C3:C9. Mar it sil ek in flater krije as de ynfier numerike wearde buiten berik is.
1.5 String to Double
Yn dit foarbyld sille wy de ynfierstrings omsette yn dûbel datatype (dûbele presyzje driuwend -punt) nûmers. Hjirfoar hawwe wy nedichom de CDbl-funksje te brûken.
De dûbele gegevenstype berikt- (i) -1.79769313486231E308 oant -4.94065645841247E-324 foar negative nûmers.
(ii) 4.94065645841247E-324 posityf E-324 e-324 <3. .
Rin de folgjende koade út yn de fisuele basisbewurker.
1562
Yn de útfier befetsje sellen B3:B9 wat numerike tekenrige wearde en konvertearre dûbele datatype nûmers binne yn sellen C3:C9. Mar it sil ek in flater krije as de ynfier numerike wearde is buiten berik.
1.6 String to Currency
It falutagegevenstype is handich as berekkeningen relatearre binne oan jild . Boppedat, as wy mear krektens wolle yn fêste – punt berekkening , is it gebrûk fan it type falutagegevens in goede kar. Wy moatte de CCur-funksje brûke om in tekenrige te konvertearjen yn in falutagegevenstype . It gegevenstype berikt fan -922,337,203,685,477.5808 oant 922,337,203,685,477.5808.
Koade nei konvertearje
6387
1.7 String to Byte
De CByte-funksje konvertearret numerike tekenrigewearden nei it bytegegevenstype dat rint fan 0 oant 255.
Koade is asfolget :
7774
Yn de útfier, sellen B3:B9 befetsje wat numerike tekenrigewearde, en konvertearre bytegegevenstypenûmers binne yn sellen C3:C9. Mar it sil ek in flater krije as de ynfier numerike wearde buiten berik is.
Lês mear: Hoe kinne jo string konvertearje nei lang mei VBA yn Excel
Gelykbere lêzingen
- Konvertearje string nei dûbel yn Excel VBA (5 metoaden)
- Hoe konvertearje tekst nei nûmer mei Excel VBA (3 foarbylden mei makro's)
- Fixearje Konvertearje nei nûmerflater yn Excel (6 metoaden)
- Hoe kinne jo wittenskiplike notaasje konvertearje nei nûmer yn Excel (7 metoaden)
2. Gebrûk fan oanpaste VBA-funksje om string te kontrolearjen en te konvertearjen nei nûmer yn Excel
Yn dizze yllustraasje sille wy in oanpaste funksje meitsje foar it konvertearjen snaren oan nûmers. Wy kinne dan dizze oanpaste funksje brûke yn ús wurkblêd lykas in ynboude funksje . Yn dit foarbyld sille wy de CInt-funksje brûke om strings te konvertearjen nei integers by it meitsjen fan de oanpaste funksje. Wy soene ek alle oare funksjes beskreaun yn metoade 1 kinne brûke om strings nei ferskate gegevenstypen te konvertearjen. Folgje no de stappen hjirûnder om dit te berikken.
Stappen:
- Hjir, yn sellen B3:B7, hawwe wy wat numerike stringwearden.
- No, yn 'e fisuele basisbewurker, kopiearje en plakke de folgjende koade en druk dan op Ctrl + S om opslaan
1254
- Yn sel C3 , begjin te typen de funksjenamme ( StringToNumber ). Excel sil automatysk de funksje foarstelle om te brûken. Druk op de Tab-kaai om de funksje yn te fieren.
- Set de selferwizing B3 as it ienige argumint.
- Druk no op Enter nei it sluten fan de heakjes.
- Sykje de Fillhandtak yn 'e rjochter ûnderste hoeke fan sel C3 om oan te passen de funksje nei sellen C4:C7.
- De definitive útfier is de begeerde heule nûmers fan 'e tekenrige wearden .
3. VBA-koade om in selekteare berik fan sellen te konvertearjen nei nûmers yn Excel
Yn dizze yllustraasje sille wy in berik fan selekteare sellen konvertearje befettet tekenrige wearden oan heule getallen. As in sel in net-numerike wearde yn befettet, sil de útfier in dash (-) line wêze ynstee . Folgje de stappen :
- Selektearje sellen B3:B6 mei numerike stringen wearden en B7 dy't befettet in net-numerike
- Yn de Visual Basic Editor kopy en plakke it folgjende koade .
7154
- Druk no op F5 om útfier de útfier lykas werjûn yn de folgjende skermôfbylding .
Notysjes
- Wy brûkten de isNumerike funksje yn de 2e en 3e metoaden yn ús VBA-koade dy't kontrolearret oft in útdrukking omset wurde kin nei in getal.
- In metoade 1 , brûkten wy ynboude funksjes (CInt, CDbl, CSng…..) om numerike stringwearden te konvertearjen nei nûmers . Mar as der in net-numerike wearde is, sil it in mismatch flater sjen litte.
Konklúzje
No witte wy hoe't jo tekenrigewearden konvertearje nei nûmers yn Excel. Hooplik soe it jo oanmoedigje om dizze funksjonaliteit mei fertrouwen te brûken. Alle fragen of suggestjes ferjit se net yn it kommentaarfakje hjirûnder te pleatsen.