VBA eilutė sveikam skaičiui - duomenų konvertavimui naudokite CINT funkciją

„Excel VBA“ eilutė iki skaičiaus

Stygos ir sveikasis skaičius yra bendri duomenų tipai, tačiau dažnai kaip duomenų analizės dalį, mes galime norėti konvertuoti eilutės duomenų tipo kintamąjį į sveiko skaičiaus duomenų tipą ir tai įmanoma naudojant VBA funkciją „CINT“.

CINT funkcijos sintaksė

„CINT“ klasifikuojama kaip duomenų tipo konvertavimo funkcija. Ši funkcija paverčia pateiktą išraišką į sveikąjį duomenų tipą. Kai sakau „Išraiška“, tai turi būti skaitinė reikšmė, kuri yra VBA sveikojo duomenų tipo diapazone, ty nuo -32768 iki 32767.

Dabar pažvelkite į CINT funkcijos sintaksę VBA.

  • Išraiška yra vertė arba kintamasis, kuriame yra vertė, kuri turi būti konvertuota į sveikojo duomenų tipą.
1 pastaba: Tik tada, kai perduodate išraiškos vertę, ji turi būti nuo -32768 iki 32767. Priešingu atveju tai sukels „Over Flow Error“, ty priskirs reikšmę, viršijančią duomenų tipo ribą. 2 pastaba: Išraiška turi būti skaitinė reikšmė. Jei išraiška yra eilutės arba teksto reikšmė, tai sukels „Run Run Error 13: Type Mismatch“.

Šiame straipsnyje mes parodysime apie sveikojo skaičiaus duomenų tipo konvertavimą iš eilutės į sveiką skaičių naudojant funkciją „CINT“.

CINT funkcijos pavyzdžiai VBA

1 pavyzdys

Atlikime pirmąjį vienos trupmenos skaičiaus konvertavimo į sveikųjų duomenų tipą pavyzdį.

Kodas:

Sub CINT_Example1 () Dim IntegerNumber as string
  • Pirmiau pateiktame kintamojo „IntegerNumber“ kode aš priskyriau reikšmę „2564,589“.
  • Kitoje eilutėje pritaikiau CINT funkciją. Taigi ji pavers pateiktą vertę į artimiausią sveikąjį skaičių.

Taigi, mes gavome rezultatą - 2565, o pateiktas skaičius yra 2564,589. Kai dešimtainė reikšmė yra didesnė nei 0,5, CINT funkcijos suapvalina skaičių iki kito sveiko skaičiaus. Kai dešimtainė reikšmė yra mažesnė arba lygi 0,5 CINT funkcijų, suapvalinkite žemyn iki to paties sveikojo skaičiaus.

Pavyzdžiui, pažvelkite į žemiau esantį kodą, kuriame skaičius yra mažesnis nei 0,5

Kodas:

CINT_Example1 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = 2564 - 0,5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Tai turėtų suteikti rezultatą 2564, o ne 2565.

2 pavyzdys

Dabar pabandysiu priskirti skaičių, kuris viršija sveikojo duomenų tipo ribą.

Kodas:

Sub CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Priskyriau numerį „IntegerNumber = 51456.785“, kuris viršija sveikojo duomenų tipo apribojimo limitą. Dabar, jei bandysiu paleisti kodą, jis sukels perpildymo klaidą VBA.

Kai nurodytas skaičius yra didesnis nei sveikųjų duomenų tipas, galima parodyti paprastą pranešimų laukelį, kuriame sakoma „Skaičius yra daugiau nei sveikųjų duomenų tipo limitas“.

Kodas:

Sub CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: Jei Err.Number = 6, tada MsgBox IntegerNumber & "yra daugiau nei bendro skaičiaus tipas". Pabaigos sub

Tai parodys pranešimą, kaip nurodyta toliau, kai nurodytas skaičius nepatenka į sveikojo duomenų tipo diapazoną.

3 pavyzdys

Dabar pabandysiu priskirti reikšmę, kuri nėra skaitinė.

CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Aš priskyriau vertę „Sveiki“, kuri nėra skaitinė. Tai sukelia „Tipo neatitikimo klaidą“.

Užuot parodę tokią klaidą, prieš vartotoją įdėkime paprastą informacinių pranešimų laukelį. Žemiau pateiktame kode bus įdėtas pranešimo laukelis, kuriame sakoma „Pateikta išraiškos reikšmė nėra skaitmeninė, todėl jos negalima konvertuoti“.

Kodas:

Sub CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = "Hello" On GoTo Message on Error: IntegerResult = CInt (IntegerNumber) Message: if Err.Number = 13 Then MsgBox IntegerNumber & ": Pateikta išraiškos reikšmė yra ne skaičius , Taigi negalima konvertuoti

Tai parodys toliau pateiktą pranešimų laukelį.

Ką reikia atsiminti

  • CINT konvertuoja kito duomenų tipo vertę į sveiko skaičiaus duomenų tipą.
  • Sveikasis skaičius gali laikyti reikšmes nuo -32768 iki 32767, jei kas nors virš šių skaičių sukels perpildymo klaidą.
  • Tik eilutės duomenų tipe yra skaitiniai duomenys, kurie bus konvertuoti į sveikojo skaičiaus duomenų tipą.

Rekomenduojami straipsniai

Tai buvo VBA styginių skaičiaus vadovas. Čia aptarsime „Excel VBA“ eilutės iki sveiko skaičiaus pavyzdžius, naudodami funkciją CINT, kartu su praktiniais pavyzdžiais ir atsisiunčiamu „Excel“ šablonu. Žemiau yra keletas naudingų straipsnių, susijusių su VBA -

  • VBA padalijo stygą į masyvą
  • VBA styginiai iki šiol
  • VBA styginių palyginimas
  • VBA Pakeiskite eilutę

Įdomios straipsniai...