VBA CLng -toiminto | Kuinka käyttää CLng-toimintoa? (esimerkkien kanssa)

Excel VBA CLng -toiminto

”CLNG” tarkoittaa ”muunna pitkäksi” tietotyyppiä. Kokonaislukutietotyyppiraja on välillä -32768 - 32767, joten kaikki ylimääräinen, jonka haluat tallentaa näihin muuttujiin, meidän on käytettävä VBA: ssa PITKÄ tietotyyppi.

Muuttujat ovat avainasemassa millä tahansa ohjelmointikielellä, eikä VBA ole erilainen. Ilman muuttujia on melkein mahdotonta kirjoittaa pitkiä koodeja. Jos muuttujat ovat tärkeitä, näille muuttujille määräämämme tietotyyppimuuttuja on vielä tärkeämpi, koska niille määräämämme tietotyyppi on lopputulos, jonka saamme.

Usein voimme määrittää numeerisen datan merkkijonoksi, joten tämä heittää virheen laskutoimituksissa, joten muuntofunktioiden avulla voimme muuntaa haluamasi tietotyypin. Yleisimmin käytettyjä muunnintoimintoja ovat CLng, CInt, CDbl, CDate, CDec vba. Tässä artikkelissa kerrotaan kokonaislukutietotyypin muunnosfunktiosta “CLNG”.

Syntaksi

Alla on CLNG-toiminnon syntaksi.

  • Lauseke on vain arvo tai muuttuja, jonka haluamme muuntaa LONG-tietotyypiksi.

Huomaa: Muunnettavan arvon on oltava numeerinen, mikä tahansa muu kuin numeerinen arvo aiheuttaa "Run Time Error 13: Type Mismatch"

Esimerkkejä CLng-toiminnon käytöstä VBA: ssa

Voit ladata tämän VBA CLNG Excel -mallin täältä - VBA CLNG Excel -malli

Esimerkki 1

Nyt näemme, miten muunnetaan tekstiin tallennettu arvo "Pitkäksi" tietotyypiksi.

Katso esimerkki alla olevasta koodista.

Koodi:

 Sub CLNG_Example1 () Dim LongNumber as String Dim LongResult As Long LongNumber = "2564589" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Joten, nyt tarkasti koodi ymmärtää miten se toimii.

Ensinnäkin olemme ilmoittaneet kaksi muuttujaa String ja Long.

Koodi:

 Dim LongNumber kuin merkkijono Dim LongTulos niin pitkä 

Merkkijonomuuttujalle olemme määrittäneet arvon numeron, mutta lainausmerkeissä, joten se, mitä tämä tekee, käsittelee lukua "2564589" merkkijonona, ei "Long" -muuttujana. Seuraavaksi muuttujalle LongResult, olemme käyttäneet Clng (LongNumber) -toimintoa muuntaa merkkijono tallennettu numero PITKÄ muuttuja.

Seuraava viestiruutu näyttää tuloksen LONG-numerona, joka muunnetaan merkkijonosta pitkäksi tietotyypiksi.

Tuotos:

Esimerkki 2

Katsokaa nyt alla olevaa koodia.

Koodi:

 Sub CLNG_Example2 () Dim LongNumber as String Dim LongResult As Long LongNumber = "Long Number" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Tämän pitäisi antaa meille tulos nimellä ”Type Mismatch” .

Virheen korjaaminen on erittäin tärkeää ymmärtää, miksi virhe tapahtuu. Kun tarkastelet tarkasti ensimmäisen muuttujan LongNumber muuttujia, olemme määrittäneet tekstiarvoksi “Pitkän luvun”, sitten olemme käyttäneet Excel VBA CLNG -toimintoa tämän muuntamiseksi LONG-tietotyypiksi.

Syy miksi saimme tämän virheen on, että PITKÄ tietotyyppi voi hyväksyä vain numeerisen tietotyypin, koska olemme toimittaneet merkkijonon arvon muuttujalle, se ei voi muuntaa merkkijonoa tai tekstiarvoa pitkäksi tietotyypiksi, joten virheeksi annetaan " Kelpaamaton syöte".

Esimerkki 3

Vielä yksi virhe, jonka saamme LONG-tietotyypillä, on “Ylivuotovirhe vba: ssa”, ts. Pitkään muuttuvaan tietotyyppiin mahtuu arvot välillä -2 147 483 648 - 2 147 483 647. Joten mikä tahansa arvo tämän yläpuolella aiheuttaa ylivuotovirheen.

Katso esimerkki alla olevasta koodista.

Koodi:

 Sub CLNG_Example3 () Dim LongNumber as String Dim LongResult As Long LongNumber = "25645890003" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Muuttujalle "LongNumber" olen määrittänyt numeron "25645890003", joka on yli "Long" -tietotyypin rajan. Kun suoritamme yllä olevan koodin, se havaitsee "ylivuoto" -virheen.

Joten, kun muunnat minkä tahansa muun tietotyypin Long-tietotyypiksi, meidän on pidettävä mielessä kaikki edellä mainitut asiat.

Muistettava asia täällä

  • CLNG tarkoittaa muuntamista pitkiksi.
  • Tämä toiminto muuntaa toisen tietotyypin pitkäksi tietotyypiksi.
  • Sinun on tiedettävä pitkän tietotyypin raja, jotta vältät ylivuotovirheet.

$config[zx-auto] not found$config[zx-overlay] not found