Hoe om string na nommer om te skakel in Excel VBA (3 metodes)

  • Deel Dit
Hugh West

In hierdie artikel sal ons verskeie metodes bespreek om string na nommer in Excel VBA om te skakel. Ons sal sien hoe om die ingeboude funksies te gebruik en 'n pasgemaakte funksie te skep deur hulle te gebruik om string na nommer om te skakel met VBA-kode voorbeelde.

Laai Practice Workbook af

Laai hierdie oefenwerkboek af om te oefen terwyl jy hierdie artikel lees.

Skakel string om na nommer.xlsm

3 maniere om string na nommer om te skakel in Excel VBA

1. Omskep string na nommer deur gebruik te maak van tipe-omskakelingsfunksies

Excel bied verskeie ingeboude tipe-omskakelingsfunksies . Ons kan dit in ons VBA-kode gebruik om maklik van string datatipe na verskillende datatipes om te skakel.

1.1 String na Heelgetal

Om string na om te skakel heelgetal , ons kan die CInt-funksie in ons kode gebruik. Die CInt-funksie neem slegs een argument en dit moet 'n numeriese waarde wees. Kom ons probeer die volgende kode in die Visual Code Editor.

7061

Druk F5 om uit te voer die kode . Die afvoer word in die MsgBox gewys.

Die CInt-funksie omgeskakel die numeriese string waarde (“12.3” ) na 'n heelgetal 12.

Om meer oor die CInt-funksie te verstaan, voer die volgende uit kode in die koderedigeerder en let op die resultate .

6506

Die afvoer is hier in dievolgende skermkiekie .

Kode Verduideliking

In hierdie kode het ons die Vir... Volgende lus om die CInt-funksie toe te pas op die stringe van selle B3:B7. Die uitsette word in selle C3:C7 gedruk. Ons het die Selle-funksie gebruik om die invoerwaardes te spesifiseer en waar om die uitvoerwaardes te druk.

Resultate

Die CInt-funksie omgeskakel 25.5 na die volgende heelgetal getal 26 . Aan die ander kant het dit 10.3 na 10 omgeskakel, nie 11 . Wanneer 'n desimale numeriese waarde minder as .5 is, rond die funksie af na dieselfde getal. Maar die desimale numeriese stringwaarde verander in die volgende heelgetal getal as dit gelyk aan of groter as .5 is.

Let wel

Die heelgetalwaarde het 'n reeks tussen -32,768 tot 32,767 . As ons 'n numeriese waarde plaas wat buite hierdie reeks is, sal Excel 'n fout wys.

1.2 String na Lang

Die CLng-funksie skakel 'n numeriese stringwaarde om na 'n lang datatipe . Dit werk soortgelyk aan die CInt-funksie. Die sleutelverskil lê in sy reeks wat tussen -2,147,483,648 en 2,147,483,647 is.

The code to run is here below:1652

Hier bevat selle B3:B9 een of ander numeriese stringwaarde , en omgeskakelde l getalle is in selle C3:C9. Die CLng-funksie omgeskakel -32800 en 32800 suksesvol na lang nommers wat die CInt-funksie nie kon nie. Maar dit sal ook 'n fout kry as die invoer numeriese waarde buite omvang is.

1.3 String na Desimale

Deur die CDec-funksie te gebruik, kan ons omskakel 'n numeriese stringwaarde tot 'n desimale datatipe. Begin die volgende kode om om te skakel die numeriese waardes in selle B3:B7 na die desimale datatipe.

8777

1.4 String na Enkel

In hierdie voorbeeld sal ons die invoerstringe verander in enkele datatipe (enkel -presisie drywende-punt) getalle. Hiervoor moet ons die CSng-funksie gebruik.

Die enkele datatipe strek- (i)  -3.402823E38 tot -1.401298E-45 vir negatiewe getalle.

(ii) 1.401298E-45 tot <3.2>E-45 tot <3. positiewe getalle.

Laat die volgende kode in die visuele basiese redigeerder hardloop.

7871

In die uitvoer, selle B3:B9 een of ander numeriese stringwaarde bevat, en omgeskakelde enkeldatatipe-getalle is in selle C3:C9. Maar dit sal ook 'n fout kry as die invoer numeriese waarde buite omvang is.

1.5 String na dubbel

In hierdie voorbeeld sal ons die invoerstringe verander in dubbele datatipe (dubbel-presisie swewend -punt) getalle. Hiervoor het ons nodigom die CDbl-funksie te gebruik.

Die dubbele datatipe strek- (i) -1.79769313486231E308 tot -4.94065645841247E-324 vir negatiewe getalle.

(ii) 4.94065645841247E-324 e-324 3247E-324 324 324 7. .

Laat die volgende kode in die visuele basiese redigeerder hardloop.

6290

In die uitvoer bevat selle B3:B9 'n paar numeriese stringwaarde en omgeskakelde dubbele datatipe getalle is in selle C3:C9. Maar dit sal ook 'n fout kry as die invoer numeriese waarde is buite omvang.

1.6 String na Geldeenheid

Die geldeenheiddatatipe is handig wanneer berekeninge verband hou met geld . Verder, as ons meer akkuraatheid wil hê in vaste punt berekening , is die gebruik van die geldeenheiddatatipe 'n goeie keuse. Ons moet die CCur-funksie gebruik om 'n string om te skakel na 'n geldeenheiddatatipe . Die datatipe wissel van -922,337,203,685,477.5808 tot 922,337,203,685,477.5808.

Kode na omskakel van selle B3:B7 tot geldeenheiddatatipe in selle C3:C7 is hier onder.

9639

1.7 String na Byte

Die CByte-funksie skakel numeriese stringwaardes om na die byte-datatipe wat wissel van 0 tot 255.

Kode is asvolg :

7918

In die uitvoer, selle B3:B9 bevat een of ander numeriese stringwaarde, en omgeskakelde greepdatatipe nommers is in selle C3:C9. Maar dit sal ook 'n fout kry as die invoer numeriese waarde buite omvang is.

Lees meer: Hoe om string na lank om te skakel met behulp van VBA in Excel

Soortgelyke lesings

  • Skakel string na dubbel in Excel VBA (5 metodes)
  • Hoe om teks na nommer om te skakel met Excel VBA (3 voorbeelde met makro's)
  • Repareer omskakel na nommerfout in Excel (6 metodes)
  • Hoe om wetenskaplike notasie na nommer in Excel om te skakel (7 metodes)

2. Gebruik van pasgemaakte VBA-funksie om string na nommer in Excel te kontroleer en om te skakel

In hierdie illustrasie gaan ons 'n pasgemaakte funksie vir omskakeling maak stringe aan getalle. Ons kan dan gebruik hierdie pasgemaakte funksie in ons werkblad soos 'n ingeboude funksie . In hierdie voorbeeld sal ons die CInt-funksie gebruik om stringe om te skakel na heelgetalle terwyl die pasgemaakte funksie geskep word. Ons kan ook al die ander funksies beskryf in metode 1 gebruik om stringe na verskillende datatipes om te skakel. Volg nou die stappe hieronder om dit te bereik.

Stappe:

  • Hier, in selle B3:B7, het ons 'n paar numeriese stringwaardes.

  • Nou, in die visuele basiese redigeerder, kopieer en plak die volgende kode en druk dan Ctrl + S om stoor
4583
  • In sel C3 , begin tik die funksienaam ( StringToNumber ). Excel sal outomaties voorstel die funksie om te gebruik. Druk die Tab-sleutel om die funksie in te voer.

  • Sit die selverwysing B3 as die enigste argument.

  • Druk nou Enter nadat jy die hakies gesluit het.

  • Soek die Vulhandvatsel in die regter onderste hoek van sel C3 om toe te pas die funksie na selle C4:C7.

  • Die finale uitvoer is die gesogte heelgetalgetalle vanaf die stringwaardes .

3. VBA-kode om 'n geselekteerde reeks selle na getalle in Excel om te skakel

In hierdie illustrasie sal ons 'n reeks van geselekteerde selle omskakel wat stringwaardes tot heelgetalle bevat. As enige sel 'n nie-numeriese waarde daarin bevat, sal die uitvoer 'n streep (-) lyn in plaas daarvan wees. Volg die stappe :

  • Kies selle B3:B6 met numeriese stringe waardes en B7 wat bevat 'n nie-numeriese

  • In die Visual Basic Editor kopie en plak die volgende kode .
9449
  • Druk nou F5 om die afvoer te hardloop soos getoon in die volgende skermkiekie .

Notas

  • Ons het die gebruik isNumeriese funksie in die 2de en 3de metodes in ons VBA-kode wat kontroleer of 'n uitdrukking na 'n getal omgeskakel kan word.
  • In metode 1 , het ons ingeboude funksies (CInt, CDbl, CSng…..) gebruik om numeriese stringwaardes na getalle om te skakel. Maar as daar 'n nie-numeriese waarde is, sal dit 'n mispasfout wys.

Gevolgtrekking

Nou weet ons hoe om stringwaardes om te skakel na getalle in Excel. Hopelik sal dit jou aanmoedig om hierdie funksionaliteit met meer selfvertroue te gebruik. Enige vrae of voorstelle moenie vergeet om dit in die kommentaarblokkie hieronder te plaas nie.

Hugh West is 'n hoogs ervare Excel-afrigter en ontleder met meer as 10 jaar ondervinding in die bedryf. Hy het 'n Baccalaureusgraad in Rekeningkunde en Finansies en 'n Meestersgraad in Besigheidsadministrasie. Hugh het 'n passie vir onderrig en het 'n unieke onderrigbenadering ontwikkel wat maklik is om te volg en te verstaan. Sy kundige kennis van Excel het duisende studente en professionele persone wêreldwyd gehelp om hul vaardighede te verbeter en uit te blink in hul loopbane. Deur sy blog deel Hugh sy kennis met die wêreld, en bied gratis Excel-tutoriale en aanlyn opleiding aan om individue en besighede te help om hul volle potensiaal te bereik.