VBA Long (pavyzdys) - Ilgų duomenų tipo „Excel VBA“ žingsnis po žingsnio

Kas yra ilgas duomenų tipas VBA?

Ilgis yra duomenų tipas VBA, kuris naudojamas skaitmeninėms vertėms išsaugoti, žinome, kad sveikasis skaičius taip pat turi skaitines vertes, tačiau ilgasis skiriasi nuo sveikųjų skaičių, nes duomenų saugojimo diapazonas yra labai didelis, jei ilgas duomenų tipas taip pat ilgas duomenų tipą, mes taip pat galime laikyti dešimtaines reikšmes, tai yra integruotas duomenų tipas.

„Ilgai“, kaip sakoma pavadinime, ji turėtų turėti kažko didelio vertę. „Ilgas“ yra skaitmeninių duomenų tipas „VBA Excel“.

Ilgas duomenų tipas „Excel VBA“ gali turėti teigiamų skaičių reikšmes nuo 0 iki 2, 147, 483, 647, o neigiamo skaičiaus - nuo 0 iki -2, 147, 483, 648.

VBA ilgam duomenų tipui reikia 4 baitų atminties jūsų kompiuteryje. Tai dviguba sveiko skaičiaus duomenų tipo kintama atmintis (2 baitai) ir pusė dvigubo duomenų tipo kintamosios atminties (8 baitai)

Niekada nemačiau scenarijaus, kai per trumpą karjerą norėčiau visiškai išnaudoti VBA Long duomenų tipo limitą. Bet aš jums parodysiu keletą pavyzdžių, kad geriau jį suprastumėte.

VBA ilgų duomenų tipo pavyzdžiai

Toliau pateikiami „Excel VBA Long“ duomenų pavyzdžiai.

VBA ilgasis pavyzdys Nr. 1

Kai tik deklaruojate kintamojo duomenų tipą kaip „Ilgas“, galite priskirti reikšmes nuo -2, 147, 483, 648 iki 2, 147, 483, 648.

Pavyzdžiui, paskelbkite kintamąjį kaip ilgą duomenų tipą.

Kodas:

Sub Long_Pavyzdys1 () Dim k As Long End Sub

Priskirkime vertę kaip bendrą darbalapio eilučių skaičių.

Norėdami gauti bendrą „Excel“ darbalapio kodo eilučių skaičių, „Eilutės. Grafas “

Kodas:

Sub Long_Pavyzdys1 () Dim k As Long k = Rows.Count End Sub

Dabar parodykite vertę pranešimo laukelyje.

Kodas:

Sub Long_Pavyzdys1 () Dim k As Long k = Rows. Count MsgBox k End Sub

Paleiskite šį kodą ir sužinokite, kiek skaičiuoja eilučių darbalapyje.

Jis sako, kad darbalapyje turime daugiau nei 1 milijoną eilučių.

Kad geriau suprasčiau, pakeisiu duomenų tipą iš LONG į INTEGER.

Kodas:

Ilgasis_pavyzdys1 () Dim k As Sveikasis k = Eilutės. Skaičius MsgBox k Pabaiga Sub

Jei paleisiu VBA kodą, gausiu klaidos pranešimą kaip „Perpildymas“.

Priežastis, kodėl šią klaidą radome VBA, nes duomenų tipas „Sveikasis skaičius“ gali laikyti reikšmes tik nuo -31768 iki 32767. Šiuo atveju „Eilutės. Skaičius “grąžins skaičių, kuris viršija kintamojo„ sveikasis skaičius “ribą.

Priskyrus daugiau nei 1 milijono vertę kintamajam, kuriame telpa tik 32767, čia atsiranda perpildymo klaida.

VBA ilgasis pavyzdys Nr. 2

Raskite paskutinę eilutę naudodami ilgąjį kintamąjį

Svarbiausias kodavimas yra paskutinės panaudotos darbalapio eilutės radimas. Norint rasti paskutinę naudojamą darbalapio eilutę, reikia deklaruoti kintamąjį. Deklaruojant kintamąjį ir priskiriant duomenų tipą reikalingas tam tikras sveikas protas.

Tarkime, kad jūsų duomenys baigiasi 25000 eilučių, kaip parodyta žemiau esančiame paveikslėlyje.

Dabar žinau, kad paskutinis naudotas eilutės numeris yra 25000. Tam mums nereikia „LONG“ tipo duomenų, nes „INTEGER“ duomenų tipas gali suteikti paskutinę eilutę.

Informacijos ieškokite žemiau esančiame kode.

Kodas:

Sub Long_Pavyzdys1 () Dim k As Sveikasis k = Langeliai (Rows.Count, 1). End (xlUp). Eilutė MsgBox k End Sub

Jei paleisiu šį kodą, gausiu paskutinį naudoto darbalapio, kurį šiuo metu dirbu, eilutės numerį.

Kaip koduotojui svarbu žinoti, kokio dydžio duomenis turėsite ateityje. Kadangi šiuo metu duomenys gali baigtis 25000 -oje eilutėje, tačiau jei duomenys padidėja viršijant „Integer“ ribą, ty 32767, tai sukelia perpildymo klaidą.

Pavyzdžiui, aš išaugs duomenis į 32768 -ojo eilučių.

Dabar, jei vėl paleisiu tą patį kodą, vertės negausiu. Greičiau gausiu klaidą, kaip nurodyta toliau.

Atminkite, kad padidinau ribą tik 1 viršydamas „Integer“ vertės ribą, todėl gavau perpildymo klaidą.

Taigi prieš priskiriant kintamajam duomenų tipą, svarbu žinoti duomenų dydį. Visada yra geresnė galimybė paskelbti kintamąjį kaip „LONG“, negalvojant apie savo duomenų dydį ateityje.

„Excel VBA Long Variable“ alternatyvos

Jūs jau turėtumėte galvoti, ką daryti, jei norime, kad vertė būtų didesnė nei ilgojo kintamojo riba. Tam turime naudoti skirtingus duomenų tipus, ty VBA „String“ arba „Variant“.

Atminkite, kad kai jis perbraukia skaičių 2147483647, gausime perpildymo klaidą VBA su LONG duomenų tipu. Norėdami išsaugoti daugiau nei šis skaičius, turime naudoti duomenų tipą „String“ arba „Variant“.

Styginiams

Kodas:

Sub Long_Pavyzdys2 () Dim k As String k = 2147483648 MsgBox k End Sub

Variantui

Kodas:

Sub Long_Pavyzdys2 () Dim k As variantas k = 2147483648 MsgBox k End Sub

Kai paleisime minėtus kodus, jis parodys minėtą numerį.

Įdomios straipsniai...