Kaip konvertuoti eilutę į skaičių "Excel VBA" (3 metodai)

  • Pasidalinti
Hugh West

Šiame straipsnyje aptarsime kelis eilutės konvertavimo į skaičių "Excel" VBA programoje metodus. Pažiūrėsime, kaip naudoti integruotas funkcijas ir sukurti pasirinktinę funkciją, naudojant jas eilutei konvertuoti į skaičių, ir pateiksime VBA kodo pavyzdžių.

Atsisiųsti praktikos sąsiuvinį

Atsisiųskite šį pratybų sąsiuvinį, kad galėtumėte atlikti pratimus skaitydami šį straipsnį.

Konvertuoti eilutę į Number.xlsm

3 būdai, kaip konvertuoti eilutę į skaičių "Excel VBA" programoje

1. Eilutės konvertavimas į skaičių naudojant tipo konvertavimo funkcijas

"Excel" turi keletą integruotų tipo konvertavimo funkcijos . Juos galime naudoti VBA kode, kad lengvai konvertuotume eilutės duomenų tipą į skirtingus duomenų tipus.

1.1 Eilutė į sveikas skaičius

Konvertuoti eilutė į sveikasis skaičius , galime naudoti CInt funkcija mūsų kode. CInt funkcija užtrunka tik vienas argumentas ir tai turėtų būti skaitinė reikšmė . Išbandykime šį kodą "Visual Code Editor".

 Sub StringToNumber() MsgBox CInt(12.3) End Sub 

Paspauskite F5 į paleisti . kodas . Išvestis pateikiama MsgBox .

Funkcija CInt konvertuota . skaitmeninė eilutė vertė ("12.3" ) į sveikasis skaičius 12.

Norėdami daugiau sužinoti apie CInt funkcija , paleiskite šį kodą kodo redaktoriuje ir stebėti . rezultatai .

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

Svetainė išvestis yra čia taip ekrano kopija .

Kodo paaiškinimas

Šiame kode naudojome For...Kitas ciklas taikyti CInt funkcija ląstelių eilutėse B3:B7. Svetainė išėjimai spausdinami langeliuose C3:C7. Mes naudojome Ląstelių funkcija nurodyti įvesties vertes ir kur spausdinti išvesties vertes.

Rezultatai

Funkcija CInt perskaičiuota 25,5 į kitas sveikasis skaičius 26 . Kita vertus. perskaičiuota 10.3 į 10, o ne 11 . Kai dešimtainė skaitinė vertė yra mažesnė nei .5, funkcija suapvalina iki to paties skaičiaus. Tačiau dešimtainė skaitinė eilutės reikšmė virsta Kitas sveikasis skaičius skaičius, jei jis yra lygus arba didesnis nei 0,5.

Pastaba

Viso skaičiaus reikšmė yra nuo -32,768 į 32,767 Jei įrašysime skaitinę vertę, kuri yra iš šio intervalo , "Excel" parodys klaida .

1.2 Junginys į Ilgas

Svetainė CLng funkcija konvertuoja skaitinę eilutės reikšmę į long duomenų tipas . Ji veikia panašiai kaip funkcija CInt. Esminis skirtumas yra jos diapazonas kuris yra tarp -2,147,483,648 ir 2,147,483,647.

 Toliau pateikiamas paleidimo kodas:  Sub StringToNumber() For i = 3 To 9 Cells(i, 3).Value = CLng(Cells(i, 2)) Next End Sub 

Čia ląstelės B3:B9 yra tam tikrų skaitmeninė eilutės reikšmė , ir konvertuota l skaičiai yra ląstelėse C3:C9. Svetainė CLng funkcija konvertuota -32800 ir 32800 sėkmingai į ilgi skaičiai kuris CInt funkcija negalėjo. Bet jis taip pat gaus klaida jei įvestis skaitinė reikšmė yra . išėjo iš diapazono.

1.3 Eilutė į dešimtainį skaičių

Naudojant CDec funkcija galime konvertuoti a skaitmeninė eilutės reikšmė į dešimtainis duomenų tipas. šį kodą į konvertuoti . skaitinės vertės ląstelėse B3:B7 į dešimtainis duomenų tipas.

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

1.4 Styginių į viengubą

Šiame pavyzdyje įvesties eilutes paversime vienas duomenų tipas (vienaženkliai kintamojo kablelio skaičiai). Tam reikia naudoti CSng funkcija .

Vieno duomenų tipo intervalai- (i) -3,402823E38 į -1.401298E-45 svetainėje neigiamas numeriai.

(ii) 1.401298E-45 į 3.402823E38 svetainėje teigiamas numeriai.

"Visual Basic" redaktoriuje paleiskite šį kodą.

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

Išvesties langeliuose B3:B9 yra tam tikrų skaitmeninė eilutės reikšmė, ir konvertuoti vieno duomenų tipo skaičiai yra ląstelėse C3:C9. Tačiau jis taip pat gaus klaida jei įvestis skaitinė reikšmė yra . išėjo iš diapazono.

1.5 Stygos į Dvigubas

Šiame pavyzdyje įvesties eilutes paversime double duomenų tipas (dvigubo tikslumo slankiojo kablelio) skaičius. Tam reikia naudoti CDbl funkcija .

Dvigubo duomenų tipo intervalai- (i) -1,79769313486231E308 į -4.94065645841247E-324 svetainėje neigiamas numeriai.

(ii) 4.94065645841247E-324 į 1.79769313486232E308 svetainėje teigiamas numeriai.

"Visual Basic" redaktoriuje paleiskite šį kodą.

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

Išvesties langeliuose B3:B9 yra tam tikrų skaitmeninė eilutės reikšmė ir konvertuoti dvigubo duomenų tipo skaičiai yra ląstelėse C3:C9. Tačiau jis taip pat gaus klaida jei įvestis skaitinė reikšmė yra . išėjo iš diapazono.

1.6 Eilutė į Valiuta

Svetainė valiutos duomenų tipas patogu, kai skaičiavimai susiję su pinigai Be to, jei norime didesnio tikslumo fiksuotas - taškas apskaičiavimas , valiutos duomenų tipo naudojimas yra geras pasirinkimas. Turime naudoti CCur funkcija konvertuoti eilutę į valiutos duomenų tipas . Duomenų tipas diapazonai -922,337,203,685,477.5808 į 922,337,203,685,477.5808.

Kodas į konvertuoti skaitinė eilutės reikšmė ląstelių B3:B7 į valiutos duomenų tipas ląstelėse C3:C7 čia žemiau.

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

1.7 Eilutė į baitą

Svetainė CByte funkcija konvertuoja skaitmenines eilutės reikšmes į baitų duomenų tipas kuris svyruoja nuo nuo 0 iki 255.

Kodas yra toks :

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

Išvesties langeliuose B3:B9 yra tam tikrų skaitmeninė eilutės reikšmė, ir konvertuoti baitų duomenų tipo skaičiai yra ląstelėse C3:C9. Tačiau jis taip pat gaus klaida jei įvestis skaitinė reikšmė yra . išėjo iš diapazono.

Skaityti daugiau: Kaip konvertuoti eilutę į ilgąją naudojant VBA "Excel

Panašūs skaitiniai

  • Styginių konvertavimas į dvigubą skaičių "Excel VBA" programoje (5 metodai)
  • Kaip konvertuoti tekstą į skaičių naudojant "Excel VBA" (3 pavyzdžiai su makrokomandomis)
  • Ištaisykite "Excel" konvertavimo į skaičių klaidą (6 metodai)
  • Kaip konvertuoti mokslinę notaciją į skaičių "Excel" programoje (7 metodai)

2. Pasirinktinės VBA funkcijos naudojimas tikrinant ir konvertuojant eilutę į skaičių "Excel" programoje

Šioje iliustracijoje sukursime pasirinktinė funkcija eilutėms konvertuoti į skaičius. Tada galime naudoti šis pasirinktinė funkcija mūsų darbalapis kaip integruota funkcija . Šiame pavyzdyje naudosime CInt funkcija į konvertuoti eilutes į sveikieji skaičiai kuriant pasirinktinę funkciją. Taip pat galėtume naudoti visus kitos funkcijos aprašyta 1 metodas konvertuoti stygos į skirtingi duomenų tipai . Dabar atlikite toliau nurodytus veiksmus.

Žingsniai:

  • Čia, ląstelėse B3:B7, turime keletą skaitinių eilučių reikšmių.

  • Dabar "Visual Basic" redaktoriuje, kopijuoti ir įklijuokite įrašykite šį kodą ir paspauskite Ctrl + S į išsaugoti
 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 
  • Ląstelėje C3 , pradėti spausdinti . funkcijos pavadinimas ( StringToNumber ). "Excel automatiškai pasiūlyti . funkcija naudoti. Paspauskite . Skirtuko klavišas įvesti funkciją.

  • Įdėkite ląstelės nuoroda B3 kaip vienintelis argumentas.

  • Dabar paspauskite Įveskite uždarius skliaustelius.

  • Raskite Užpildymo rankena prie dešinysis apatinis kampas ląstelės C3 į taikyti funkciją ląstelėms C4:C7.

  • Galutinė išvestis yra trokštami sveikieji skaičiai iš eilutės reikšmių.

3. VBA kodas, skirtas pasirinktam ląstelių diapazonui konvertuoti į skaičius "Excel" programoje

Šioje iliustracijoje konvertuosime diapazonas pasirinktos ląstelės su eilutės reikšmėmis į sveikuosius skaičius. Jei kuriame nors ląstelės langelyje yra neskaitmeninis reikšmę, išvesties rezultatas bus brūkšnelis (-) linija vietoj . Sekite žingsniai :

  • Pasirinkite ląsteles B3:B6 turintys skaitinės eilutės vertės ir B7 kuriame yra neskaitmeninis

  • Į "Visual Basic" redaktorius kopijuoti ir įklijuokite šie dalykai kodas .
 Sub 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 Next cell End Sub 
  • Dabar paspauskite F5 į paleisti . išvestis kaip parodyta toliau ekrano kopija .

Pastabos

  • Mes naudojome funkcija isNumeric į 2 ir 3 metodai VBA kodą, kuriuo tikrinama, ar išraiška gali būti paversta skaičiumi.
  • Svetainėje 1 metodas naudojome integruotas funkcijas (CInt, CDbl, CSng.....), kad konvertuoti skaitines eilutės reikšmes į numeriai . Bet jei yra neskaitmeninė reikšmė , bus rodomas nesutapimo klaida .

Išvada

Dabar jau žinome, kaip "Excel" programoje konvertuoti eilutės reikšmes į skaičius. Tikimės, kad tai paskatins jus drąsiau naudotis šia funkcija. Jei turite klausimų ar pasiūlymų, nepamirškite jų pateikti toliau esančiame komentarų laukelyje.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.