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

Kas yra ilgas duomenų tipas VBA?

Long yra duomenų tipas VBA, kuris naudojamas skaitmeninėms vertėms saugoti, mes žinome, kad sveikasis skaičius taip pat turi skaitines vertes, bet Long 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.

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

Ilgas „Excel VBA“ duomenų tipas 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 yra dvigubo sveiko skaičiaus duomenų tipo kintama atmintis (2 baitai) ir pusė dvigubos 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 Long Data Type Excel“ šabloną galite atsisiųsti čia - „VBA Long Data Type Excel“ šablonas

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ą aptikome 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į. Norint deklaruoti kintamąjį ir priskirti duomenų tipą, reikia sveiko proto.

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, todėl mums nereikia „LONG“ duomenų tipo, nes „INTEGER“ duomenų tipas gali suteikti paskutinę eilutę.

Norėdami sužinoti savo informaciją, žiūrėkite žemiau esantį kodą.

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 „Sveiko skaičiaus“ ribą, ty 32767, tai sukelia perpildymo klaidą.

Pavyzdžiui, padidinsiu duomenis iki 32768-osios eilutės.

Dabar, jei vėl paleisiu tą patį kodą, aš negausiu vertės, o 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 galvojate, ką daryti, jei norime išlaikyti didesnę vertę nei ilgojo kintamojo riba. Tam turime naudoti skirtingus duomenų tipus, ty VBA „String“ arba „Variant“

Prisiminkite momentą, kai jis kerta skaičių 2147483647, gausime perpildymo klaidą VBA su LONG duomenų tipu. Norėdami išsaugoti daugiau nei šį skaičių, turime naudoti duomenų tipą „String“ arba „Variant“.

Styginiams

Kodas:

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

Dėl varianto

Kodas:

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

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


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