Kazalo
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.xlsm3 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.