Kako pretvoriti niz v število v Excel VBA (3 metode)

  • Deliti To
Hugh West

V tem članku bomo obravnavali več metod za pretvorbo niza v številko v Excelu VBA. Videli bomo, kako uporabiti vgrajene funkcije in ustvariti funkcijo po meri z njihovo uporabo za pretvorbo niza v številko s primeri kode VBA.

Prenesi delovni zvezek za prakso

Prenesite ta delovni zvezek za vadbo, ki ga lahko uporabljate med branjem tega članka.

Pretvori niz v število.xlsm

3 načini za pretvorbo niza v število v programu Excel VBA

1. Pretvarjanje niza v število z uporabo funkcij za pretvarjanje tipov

Excel ponuja več vgrajenih funkcije za pretvorbo tipov . Uporabimo jih lahko v svoji kodi VBA za enostavno pretvorbo iz podatkovnega tipa string v različne podatkovne tipe.

1.1 String v celoštevilsko število

Pretvarjanje niz na . celo število , lahko uporabimo Funkcija CInt v naši kodi. Funkcija CInt traja le en argument in to bi moralo biti številčna vrednost . Poskusimo naslednjo kodo v urejevalniku Visual Code Editor.

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

Pritisnite F5 na . zagnati . koda . Rezultat je prikazan v MsgBox .

Funkcija CInt pretvorjeno . številčni niz vrednost ("12.3" ) na celo število 12.

Če želite razumeti več o Funkcija CInt v urejevalniku kode zaženite naslednjo kodo in opazujte . rezultati .

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CInt(Cells(i, 2)) Next End Sub 

Spletna stran izhod je tukaj v naslednjem posnetek zaslona .

Razlaga kode

V tej kodi smo uporabili Za...Naslednja zanka za uporabo Funkcija CInt na nizih celic B3:B7. Spletna stran izhodi so natisnjeni v celicah C3:C7. Uporabili smo Funkcija celic da določite vhodne vrednosti in kje natisniti izhodne vrednosti.

Rezultati

Funkcija CInt preračunano 25,5 na naslednja cela številka 26 . Po drugi strani pa je preračunano 10.3 na . 10, ne 11 Če je decimalna številska vrednost manjša od 0,5, funkcija zaokroži navzdol na enako število. decimalno se vrednost številskega niza spremeni v naslednje celo število število, če je enak ali več kot .5.

Opomba

Celoštevilska vrednost ima razpon med -32,768 na . 32,767 Če vnesemo številčno vrednost, ki je izven tega območja , Excel bo prikazal napaka .

1.2 Pretvorba nizov v dolge

Spletna stran Funkcija CLng pretvori vrednost številskega niza v vrednost podatkovni tip long Deluje podobno kot funkcija CInt. Ključna razlika je v njeni obseg ki je med -2,147,483,648 in . 2,147,483,647.

 Koda za zagon je tukaj spodaj:  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

Pri tem so celice B3: B9 vsebujejo nekaj vrednost številčnega niza in pretvorjeno l številčne številke so v celicah C3:C9. Spletna stran Funkcija CLng pretvorjeno -32800 in . 32800 uspešno dolge številke ki ga Funkcija CInt ne bi mogel. Vendar pa bo dobil tudi napaka če je vhod številčna vrednost je . izven območja.

1.3 Pretvorba nizov v decimalna števila

Uporaba Funkcija CDec lahko pretvori a vrednost številčnega niza v desetiški podatkovni tip. naslednjo kodo v pretvori . številčne vrednosti v celicah B3:B7 na desetiški podatkovni tip.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CDec(Cells(i, 2)) Next End Sub 

1.4 Vrvica v enojno

V tem primeru bomo vhodne nize spremenili v en sam podatkovni tip (števila s plavajočo vejico z eno natančnostjo). V ta namen moramo uporabiti Funkcija CSng .

Enotni podatkovni tip obsega- (i) -3,402823E38 na . -1.401298E-45 za negativni številke.

(ii) 1.401298E-45 na . 3.402823E38 za pozitivno številke.

V urejevalniku Visual Basic zaženite naslednjo kodo.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

V izhodu so celice B3: B9 vsebujejo nekaj vrednost numeričnega niza, in . pretvorjene številke z enim podatkovnim tipom so v celicah C3:C9. Vendar bo dobil tudi napaka če je vhod številčna vrednost je . izven območja.

1.5 String v dvojno

V tem primeru bomo vhodne nize spremenili v podatkovni tip double (števila z dvojno natančnostjo s plavajočo vejico). V ta namen moramo uporabiti Funkcija CDbl .

Podatkovni tip double obsega- (i) -1,79769313486231E308 na . -4.94065645841247E-324 za negativni številke.

(ii) 4.94065645841247E-324 na . 1.79769313486232E308 za pozitivno številke.

V urejevalniku Visual Basic zaženite naslednjo kodo.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CSng(Cells(i, 2)) Next End Sub 

V izhodu so celice B3: B9 vsebujejo nekaj vrednost številčnega niza in . pretvorjene številke z dvojnim podatkovnim tipom so v celicah C3:C9. Vendar bo dobil tudi napaka če je vhod številčna vrednost je . izven območja.

1.6 String v valuto

Spletna stran vrsta podatkov o valuti je priročen, kadar so izračuni povezani z denar Poleg tega, če želimo večjo natančnost pri popravljeno - točka izračun , je uporaba podatkovne vrste valuta dobra izbira. Uporabiti moramo Funkcija CCur za pretvorbo niza v vrsta podatkov o valuti . Podatkovna vrsta razponi s spletne strani -922,337,203,685,477.5808 na . 922,337,203,685,477.5808.

Koda za pretvori vrednost številskega niza celic B3:B7 na . vrsta podatkov o valuti v celicah C3:C7 je tukaj spodaj.

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CCur(Cells(i, 2)) Next End Sub 

1.7 Pretvorba niza v bajt

Spletna stran Funkcija CByte pretvori numerične vrednosti nizov v podatkovna vrsta bajt ki se giblje od 0 do 255.

Koda je naslednji :

 Sub StringToNumber() For i = 3 To 7 Cells(i, 3).Value = CByte(Cells(i, 2)) Next End Sub 

V izhodu so celice B3: B9 vsebujejo nekaj vrednost numeričnega niza, in . pretvorjene številke bajtne podatkovne vrste so v celicah C3:C9. Vendar bo dobil tudi napaka če je vhod številčna vrednost je . izven območja.

Preberite več: Kako pretvoriti niz v dolg niz z uporabo VBA v Excelu

Podobna branja

  • Pretvarjanje niza v dvojnega v Excelu VBA (5 metod)
  • Kako pretvoriti besedilo v številko s programom Excel VBA (3 primeri z makri)
  • Odpravite napako pretvorbe v število v Excelu (6 metod)
  • Kako pretvoriti znanstveni zapis v število v Excelu (7 metod)

2. Uporaba funkcije VBA po meri za preverjanje in pretvorbo niza v število v Excelu

V tem prikazu bomo naredili funkcija po meri za pretvorbo nizov v števila. uporaba ta funkcija po meri v našem delovni list kot vgrajena funkcija . V tem primeru bomo uporabili Funkcija CInt na . pretvori nizov v cela števila med ustvarjanjem funkcija po meri. Uporabili bi lahko tudi vse druge funkcije opisano v metoda 1 za pretvorbo vrstice na . različne vrste podatkov. . Zdaj sledite spodnjim korakom, da to dosežete.

Koraki:

  • Tukaj, v celicah B3:B7, imamo nekaj številskih vrednosti nizov.

  • Zdaj v urejevalniku Visual Basic, kopiranje in . prilepite naslednjo kodo in pritisnite Ctrl + S na . shranite
 Funkcija StringToNumber(inputStr) Dim convertedNum As Variant If IsNumeric(inputStr) Then If IsEmpty(inputStr) Then convertedNum = "-" Else convertedNum = CInt(inputStr) End If Else convertedNum = "-" End If StringToNumber = convertedNum End Function 
  • V celici C3 , začnite tipkati . ime funkcije ( StringToNumber ). Excel bo samodejno predlaga . funkcija za uporabo. Pritisnite . Tipka Tab za vnos funkcije.

  • Postavite sklic na celico B3 kot edini argument.

  • Zdaj pritisnite Vnesite po zaprtju oklepajev.

  • Poiščite Ročaj za polnjenje na desni spodnji kot celice C3 na . uporabite . funkcijo za celice C4:C7.

  • Končni rezultat so zaželena cela števila iz vrednosti nizov.

3. Koda VBA za pretvorbo izbranega obsega celic v številke v Excelu

V tem prikazu bomo pretvorili obseg na spletnem mestu izbrane celice ki vsebujejo vrednosti nizov, v cela števila. Če katera koli celica vsebuje neštevilski vrednost v njem, bo izhodna vrednost črtica (-) namesto . Sledite koraki :

  • Izberite celice B3: B6 ki ima . številski nizi vrednosti in B7 ki vsebuje neštevilski

  • V Urejevalnik Visual Basic kopiranje in . prilepite naslednje koda .
 Pod StringToNumber() Dim convertedNum As Variant For Each cell In Selection If IsNumeric(cell) Then If IsEmpty(cell) Then convertedNum = "-" Else convertedNum = CInt(cell) End If Else convertedNum = "-" End If With cell .Value = convertedNum.HorizontalAlignment = xlCenter End With Naslednja celica End Sub 
  • Zdaj pritisnite F5 na . zagnati . izhod kot je prikazano v naslednjem posnetek zaslona .

Opombe

  • Uporabili smo funkcija isNumeric v 2. in 3. metode v naši kodi VBA, ki preveri, ali je izraz mogoče pretvoriti v število.
  • Na spletnem mestu metoda 1 smo uporabili vgrajene funkcije (CInt, CDbl, CSng.....) za pretvori numerične vrednosti nizov na . številke . Toda če je neštevilčna vrednost , se bo prikazal napaka neujemanja .

Zaključek

Zdaj vemo, kako v Excelu pretvoriti vrednosti nizov v številke. Upamo, da vas bo to spodbudilo k bolj samozavestni uporabi te funkcije. Morebitna vprašanja ali predloge ne pozabite postaviti v spodnje polje za komentarje.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.