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

Sisällysluettelo

Excel VBA CLng -toiminto

”CLNG” tarkoittaa ”muunna pitkäksi” tietotyyppiä. Kokonaisluku tietotyyppiraja 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 välttämättömiä kaikilla ohjelmointikielillä, eikä VBA ole myöskään erilainen. Ilman muuttujia on melkein mahdotonta kirjoittaa pitkiä koodeja. Jos muuttujat ovat välttämättömiä, näille muuttujille määräämämme tietotyyppimuuttuja on vielä kriittisempi, koska heille antamasi tietotyyppi on tulos, jonka saamme.

Usein voimme määrittää numeerisen datan merkkijonoksi, joten tämä heittää virheen laskutoimituksissa, joten muuntofunktioita käyttämällä voimme muuntaa haluamasi tietotyypin. Yleisesti käytettyjä muunnintoimintoja ovat CLng, CInt, CDbl, CDate, CDec VBA: ssa. Tässä artikkelissa kerrotaan kokonaislukutietotyypin muunnosfunktiosta "CLNG".

Syntaksi

Alla on CLNG-toiminnon syntaksi.

  • Lauseke ei ole muuta kuin arvo tai muuttuja, jonka haluamme muuntaa LONG-tietotyypiksi.

Huomaa: Yritämme muuntaa arvon, joka on muu kuin numeerinen arvo, aiheuttaa "Run Time Error 13: Type Mismatch".

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

Esimerkki 1

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

Katso esimerkiksi alla oleva koodi.

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, vastaavasti.

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. Nyt toiselle muuttujalle, LongResult, olemme käyttäneet Clng (LongNumber) -toimintoa muuntamaan riville tallennettu numero LONG-muuttujaksi.

Seuraava viestiruutu näyttää tuloksen LONG-numerona, joka on muunnettu 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 ”tyypin ristiriita”.

Virheen korjaamisen kannalta on tärkeää ymmärtää, miksi virhe tapahtuu. Kun tutkit tarkasti ensimmäisen muuttujan LongNumber muuttujia, olemme määrittäneet tekstiarvoksi Pitkän luvun, ja sitten olemme käyttäneet Excel VBA CLNG -toimintoa muunnettaessa tämä LONG-tietotyypiksi.

Syy miksi saimme tämän virheen, on se, että LONG-tietotyyppi voi hyväksyä vain numeerisen tietotyypin, koska olemme toimittaneet muuttujalle merkkijonon arvon, se ei voi muuntaa merkkijonoa tai tekstiarvoa pitkäksi tietotyypiksi. Siksi se antaa virheen nimellä ”Type Mismatch”.

Esimerkki 3

Vielä yksi virhe, jonka saamme LONG-tietotyypillä, on "Ylivuotovirhe VBA: ssa", ts. Pitkän muuttujan tietotyyppiin mahtuu arvot -2 147 483 648 2 147 483 647. Joten mikä tahansa määrä tämän yläpuolella aiheuttaa ylivuotovirheen.

Katso esimerkiksi alla oleva koodi.

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 muunnamme minkä tahansa muun tietotyypin Long-tietotyypiksi, meidän on pidettävä mielessä kaikki yllä olevat asiat.

Muistettava asia täällä

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

Mielenkiintoisia artikkeleita...