VBA-merkkijono kokonaislukuun - Käytä CINT-toimintoa tietojen muuntamiseen

Excel VBA -merkkijono kokonaislukuun

Merkkijono ja kokonaisluku ovat yleisiä tietotyyppejä, mutta usein osana data-analyysiamme saatamme haluta muuntaa merkkijonotyypin muuttujan kokonaislukutietotyypiksi, ja tämä on mahdollista käyttämällä VBA: n ”CINT” -toimintoa.

CINT-toiminnon syntaksi

“CINT” on luokiteltu tietotyypin muunnosfunktioksi. Tämä toiminto muuntaa toimitetun lausekkeen kokonaislukutietotyypiksi. Kun sanon "lauseke", sen on oltava numeerinen arvo, joka on VBA: n kokonaislukutyyppialueella, eli välillä -32768 - 32767.

Katsokaa nyt VBA: n CINT-funktion syntaksia.

  • Lauseke on arvo tai muuttuja, joka sisältää muunnettavan luvun kokonaislukutyypiksi.
Huomautus 1: Juuri kun välität lausekkeen arvon välillä -32768 - 32767. Muussa tapauksessa se johtaa "Over Flow Error" -arvoon, eli arvon määrittämiseen, joka ylittää tietotyypin rajan. Huomautus 2: Lausekkeen on oltava numeerinen arvo. Jos lauseke on merkkijono- tai tekstiarvo, se aiheuttaa "Suoritusaikavirhe 13: Kirjoita ristiriita".

Tässä artikkelissa näytämme sinulle kokonaislukutietotyypin muuntamisen merkkijonosta kokonaislukuun funktion "CINT" avulla.

Esimerkkejä CINT-toiminnasta VBA: ssa

Esimerkki 1

Suoritetaan ensimmäinen esimerkki yhden murtoluvun muuntamisesta kokonaislukutyypiksi.

Koodi:

Al CINT_Example1 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = 2564,589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • Edellä mainitussa muuttujan ”IntegerNumber” koodissa olen määrittänyt arvon arvoksi ”2564,589”.
  • Seuraavalla rivillä olen käyttänyt CINT-toimintoa. Joten se muuntaa annetun arvon lähimpään kokonaislukuun.

Joten saimme tuloksen - 2565, ja toimitettu numero on 2564,589. Kun desimaaliarvo on yli 0,5, CINT-funktiot pyöristävät numeron seuraavaan kokonaislukuun. Kun desimaaliarvo on pienempi tai yhtä suuri kuin 0,5 CINT-funktiota, pyöristetään alas samaan kokonaislukuun.

Katso esimerkki alla olevasta koodista, jossa luku on alle 0,5

Koodi:

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

Tämän pitäisi antaa tulos 2564, ei 2565.

Esimerkki 2

Yritän nyt määrittää numeron, joka on yli kokonaislukutyypin rajan.

Koodi:

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

Olen määrittänyt numeroksi "IntegerNumber = 51456.785", joka on enemmän kuin kokonaislukutietorajoituksen raja. Jos yritän nyt suorittaa koodin, se heittää ylivuotovirheen VBA: ssa.

Aina kun annettu numero on suurempi kuin kokonaislukutietotyyppi, näytetään yksinkertainen sanomaruutu, jossa lukee "Numero on enemmän kuin kokonaislukutietojen tyyppi".

Koodi:

Sub CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: Jos Virh.Number = 6, MsgBox IntegerNumber & "on enemmän kuin kokonaisluvun tyyppi" End Sub

Tämä näyttää alla olevan kaltaisen viestin aina, kun annettu numero on kokonaislukutyyppialueen ulkopuolella.

Esimerkki 3

Yritän nyt määrittää arvon, joka ei ole numeerinen.

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

Olen määrittänyt arvon "Hei", joka ei ole numeerinen. Tämä aiheuttaa tyypin ristiriitavirheen.

Sen sijaan, että näytetään tällainen virhe, laitetaan yksinkertainen tietoviestiruutu käyttäjän eteen. Alla oleva koodi laittaa viestiruudun, jossa sanotaan "Annettu lauseke on ei-numeerinen, joten sitä ei voi muuntaa".

Koodi:

Ala CINT_Example2 () Dim IntegerNumber as String Dim IntegerResult As Integer IntegerNumber = "Hello" On GoTo Message: IntegerResult = CInt (IntegerNumber) Message: Jos Virh.Number = 13 Sitten MsgBox IntegerNumber & ": Annettu lausekearvo ei ole numero , Joten ei voi muuntaa "End Sub

Tämä näyttää alla olevan viestiruudun.

Muistettavaa

  • CINT muuntaa arvon toisesta tietotyypistä kokonaislukutietotyypiksi.
  • Kokonaisluku voi pitää arvoja välillä -32768 - 32767, mikä tahansa näiden numeroiden yläpuolella aiheuttaa ylivuotovirheen.
  • Vain merkkijonotietotyyppi sisältää numeerista tietoa, joka muunnetaan kokonaislukutietotyypiksi.

Suositellut artikkelit

Tämä on opas VBA-merkkijonolle kokonaislukuun. Tässä keskustellaan esimerkeistä merkkijonosta kokonaislukuun Excel VBA: ssa käyttämällä CINT-toimintoa, käytännön esimerkkejä ja ladattavaa Excel-mallia. Alla on joitain hyödyllisiä artikkeleita, jotka liittyvät VBA: han -

  • VBA jakaa merkkijonon taulukkoon
  • VBA-kieli tähän mennessä
  • VBA-merkkijonojen vertailu
  • VBA Vaihda merkkijono

Mielenkiintoisia artikkeleita...