VBA pikk (näide) - Pika andmetüübi juhendamine Exceli VBA-s

Lang L: none (table-of-contents)

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üüp, 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–2, 147, 483, 647 ja negatiivse arvu puhul 0–2, 147, 483, 648.

VBA pikk andmetüüp nõuab arvuti 4 baiti mälumahtu. See on kahekordne täisarvuline andmetüübi muutujamälu (2 baiti) ja pool kahekordse andmetüübi muutujamä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.

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 loendiridade kogumahu 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 veateade „Ülevool”.

Põhjus, miks me selle vea VBA-s leidsime, kuna andmetüüp „Tervik” mahutab väärtusi ainult vahemikus -31768 kuni 32767. Sel juhul kuvatakse „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 viimane rida pika muutuja abil

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 25000 rida, nagu on näidatud alloleval pildil.

Nüüd tean, et viimati kasutatud rea number on 25000. Selleks ei vaja me andmetüüpi „LONG“, kuna andmetüüp „INTEGER“ 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

Kui käivitan selle koodi, saan selle töölehe viimati kasutatud rea numbri, millega praegu töötan.

Kodeerijana on oluline teada tulevikus saadaolevate andmete suurust. Sest hetkel võivad andmed lõppeda 25 000. reas, kuid kui andmed suurenevad üle täisarvu piiri, st 32767, põhjustab see ülevoolu tõrke.

Näiteks suurendan andmeid 32768 th reani.

Kui ma sama koodi uuesti käivitan, ei saa ma seda väärtust. Pigem saan vea nagu allpool.

Pidage meeles, et olen suurendanud limiiti ainult ühe võrra üle väärtuse “Tervik” piiri, nii et sain ülevoolu tõrke.

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.

Alternatiivid Exceli VBA pika muutujaga

Peate juba mõtlema, mida teha, 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, et hetkel, kui see ületab numbri 2147483647, saame VBA-s ületäitumisvea LONG-tüüpi andmetega. Sellest numbrist rohkem 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.

Huvitavad Artiklid...