VBA pikk (näide) | Pika andmetüübi juhendamine Exceli VBA-s
Mis on VBA-s pikk andmetüüp?
Pikk on VBA andmetüüp, mida kasutatakse arvväärtuste salvestamiseks, me teame, et täisarv sisaldab ka arvväärtusi, kuid pikk erineb täisarvudest, kuna andmete salvestamise vahemik on pika andmetüübi korral ka pikk andmetüübiga võime hoida ka kümnendväärtusi, see on sisseehitatud andmetüüp.
"Pikk", nagu nimigi ütleb, peaks sellel olema millegi suure väärtus. “Pikk” on arvuline andmetüüp VBA Excelis.
Exceli VBA pikas andmetüübis võib positiivsete arvude jaoks olla väärtused 0 kuni 2, 147, 483, 647 ja negatiivse arvu puhul 0 kuni -2, 147, 483, 648.
VBA pikk andmetüüp nõuab arvuti 4 baiti mälumahtu, see on kahekordse täisarvuga andmetüübi muutuvmälu (2 baiti) ja pool kahekordse andmetüübi muutuvmälust (8 baiti)
Ma pole kunagi näinud stsenaariumi, kus tahaksin oma lühikese karjääri jooksul täielikult ära kasutada VBA Long andmetüübi piiri. Kuid ma näitan teile mõningaid näiteid, et sellest paremini aru saada.
VBA pikkade andmetüüpide näited
Allpool on toodud Exceli VBA Long andmetüübi näited.
Selle VBA pika andmetüübi Exceli malli saate alla laadida siit - VBA pika andmetüübi Exceli mall
VBA pikk näide nr 1
Niipea kui deklareerite muutuja andmetüübi pikkuseks, saate määrata väärtused vahemikus -2, 147, 483, 648 kuni 2, 147, 483, 648.
Näiteks kuulutage muutuja pikkaks andmetüübiks.
Kood:
Sub Long_Nample1 () Dim k As Long End Sub
Määrame väärtuse töölehe ridade koguarvuna.
Exceli töölehe koodis olevate ridade koguarvu saamiseks on „Read. Loendama ”
Kood:
Sub Long_Nample1 () Dim k As Long k = read. Loendu lõpp Sub
Nüüd kuvage väärtus sõnumikastis.
Kood:
Sub Long_Nample1 () Dim k As Long k = read. Loend MsgBox k End Sub
Käivitage see kood ja vaadake, kui palju on töölehel ridu kokku.
See ütleb, et meil on töölehel üle 1 miljoni rea.
Nüüd paremaks mõistmiseks muudan andmetüübi PIKALT INTEGERILE.
Kood:
Sub Long_Nample1 () Dim k As Integer k = Rows. Count MsgBox k End Sub
Kui käivitan VBA-koodi, kuvatakse tõrketeade "Ülevool".
Põhjus, miks me selle vea VBA-s leidsime, kuna andmetüüp „Tervik” mahutab väärtusi ainult vahemikus -31768 kuni 32767. Sel juhul „Read. Count ”tagastab arvu, mis on suurem kui muutuja„ integer ”piir.
Üle miljoni väärtuse määramine muutujale, mis mahutab ainult 32767, põhjustab siin ülevooluvea.
VBA pikk näide nr 2
Leidke pikk ruudu abil viimane rida
Töölehe viimati kasutatud rea leidmine on kodeerimisest kõige olulisem. Töölehe viimati kasutatud rea leidmiseks on vaja muutuja deklareerida. Muutuja deklareerimine ja andmetüübi määramine nõuab küll tervet mõistust.
Oletame, et teie andmed lõpevad 25 000 rida, nagu on näidatud alloleval pildil.
Nüüd tean, et viimati kasutatud rea number on 25000, selleks pole meil vaja „LONG“ tüüpi andmet, sest „INTEGER“ andmetüüp võib anda mulle viimase rea.
Teabe saamiseks vaadake allolevat koodi.
Kood:
Sub Pikk_Näide1 () Dim k As täisarv k = lahtrid (read.Count, 1) .End (xlUp) .Rida MsgBox k End Sub
Selle koodi käivitamisel saan selle töölehe viimase kasutatud rea numbri, millega praegu töötan.
Kodeerijana on oluline teada tulevikus saadaolevate andmete suurust. Kuna hetkel võivad andmed lõppeda 25000. real, kuid kui andmed suurenevad üle täisarvu piiri, st 32767, põhjustab see ülevoolu tõrke.
Näiteks suurendan andmeid 32768. reani.
Kui ma sama koodi uuesti käivitan, ei saa ma väärtust, pigem saan vea nagu allpool.
Pidage meeles, et olen suurendanud piiri ühe täisarvu piirist vaid ühe võrra, seega sain vea ületäitumise korral.
Seega on enne muutujale andmetüübi määramist oluline teada oma andmete suurust. Alati on parem variant deklareerida muutuja “PIKAKS”, mõtlemata tulevikus oma andmete suurusele.
Exceli VBA pika muutuja alternatiivid
Peate juba mõtlema, et mis siis, kui tahame hoida väärtust rohkem kui pika muutuja piiri. Selleks peame kasutama erinevaid andmetüüpe, st kas VBA “String” või “Variant”
Pidage meeles, kui see ületab numbri 2147483647, saame VBA-s ületäitumisvea LONG-tüüpi andmetega. Selle numbri salvestamiseks peame kasutama andmetüüpi „String” või „Variant”.
Stringi jaoks
Kood:
Sub pikk_näide2 () Dim k As String k = 2147483648 MsgBox k End Sub
Variandi jaoks
Kood:
Sub pikk_näide2 () Dim k Variant k = 2147483648 MsgBox k End Sub
Kui käivitame ülaltoodud koodid, näitab see mainitud numbrit.