VBA Long (príklad) | Podrobný sprievodca dlhými dátovými typmi v programe Excel VBA

Čo je dlhý dátový typ vo VBA?

Long je dátový typ vo VBA, ktorý sa používa na ukladanie číselných hodnôt, vieme, že celé číslo obsahuje aj číselné hodnoty, ale Long sa líši od celých čísel, pretože rozsah pre ukladanie dát je veľmi veľký v prípade dlhého dátového typu aj v long dátový typ, ktorý môže obsahovať aj desatinné hodnoty, je to zabudovaný dátový typ.

„Dlhý“, ako hovorí názov, mal by mať hodnotu niečoho veľkého. „Long“ je číselný údajový typ v programe VBA Excel.

Dlhý dátový typ v programe Excel VBA môže obsahovať hodnoty od 0 do 2, 147, 483, 647 pre kladné čísla a pre záporné číslo môže obsahovať 0 až -2, 147, 483, 648.

VBA Long dátový typ vyžaduje 4 bajty pamäte vášho počítača, jedná sa o dvojitú celočíselnú premennú pamäť typu dát (2 bajty) a polovicu dvojitej premennej pamäte typu údajov (8 bajtov)

Nikdy som nevidel scenár, kedy by som chcel počas svojej krátkej kariéry naplno využiť limit dátového typu VBA Long. Ale ukážem vám niektoré z príkladov, aby ste tomu lepšie porozumeli.

Príklady dlhých dátových typov VBA

Ďalej uvádzame príklady excelového dátového typu VBA Long.

Túto šablónu VBA Long Data Type Excel si môžete stiahnuť tu - Šablóna VBA Long Data Type Excel

Dlhý príklad VBA č. 1

Hneď ako deklarujete variabilný dátový typ ako „dlhý“, môžete priradiť hodnoty od -2, 147, 483, 648 do 2, 147, 483, 648.

Napríklad premennú vyhláste za dlhý údajový typ.

Kód:

 Sub Long_Example1 () Dim k ako Long End Sub 

Priradme hodnotu ako celkový počet riadkov tabuľky.

Ak chcete získať celkový počet riadkov v kóde pracovného hárka programu Excel, je to „Riadky. Počítať “

Kód:

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

Teraz ukážte hodnotu v okne správy.

Kód:

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

Spustite tento kód a pozrite sa, aký je celkový počet riadkov v hárku.

Uvádza sa v ňom, že v pracovnom hárku je viac ako 1 milión riadkov.

Teraz pre lepšie pochopenie zmením dátový typ z LONG na INTEGER.

Kód:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

Ak spustím kód VBA, zobrazí sa chybové hlásenie „Overflow“.

Dôvod, prečo sme dostali túto chybu vo VBA, pretože dátový typ „Integer“ môže obsahovať iba hodnoty od -31768 do 32767. V tomto prípade „Riadky. Count ”vráti číslo, ktoré je väčšie ako limit premennej“ integer ”.

Priradenie hodnoty viac ako 1 milión premennej, ktorá môže obsahovať iba 32767, spôsobí tu chybu pretečenia.

Dlhý príklad VBA č. 2

Vyhľadajte posledný riadok pomocou dlhej premennej

Najdôležitejší z kódovania je nájdenie posledného použitého riadku tabuľky. Aby bolo možné nájsť posledný použitý riadok tabuľky, je potrebné deklarovať premennú. Deklarácia premennej a priraďovanie dátového typu si vyžaduje zdravý sedliacky rozum.

Predpokladajme, že máte dátové konce na 25 000 riadkoch, ako je znázornené na nasledujúcom obrázku.

Teraz viem, že posledné použité číslo riadku je 25000, preto nepotrebujeme dátový typ „LONG“, pretože dátový typ „INTEGER“ mi môže dať posledný riadok.

Ďalšie informácie nájdete v nižšie uvedenom kóde.

Kód:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1). End (xlUp). Row MsgBox k End Sub 

Ak spustím tento kód, dostanem posledné použité číslo riadku tabuľky, na ktorej momentálne pracujem.

Ako programátor je dôležité poznať veľkosť údajov, ktoré budete mať v budúcnosti. Pretože v súčasnosti môžu údaje končiť na 25 000. riadku, ale ak údaje stúpnu nad limit „Celé číslo“, tj. 32767, spôsobí to chybu pretečenia.

Napríklad zvýšim údaje na 32 768. riadok.

Teraz, keď znova spustím ten istý kód, nedostanem hodnotu, skôr sa zobrazí chyba, ako je uvedené nižšie.

Pamätajte, že som zvýšil limit iba o 1 nad limit hodnoty „Celé číslo“, takže sa vyskytla chyba Overflow.

Pred priradením dátového typu k premennej je preto dôležité poznať veľkosť vašich údajov. Vždy je lepšou možnosťou deklarovať premennú ako „DLHÚ“ bez toho, aby ste v budúcnosti mysleli na veľkosť svojich údajov.

Alternatívy k Excel VBA Long Variable

Určite už uvažujete nad tým, čo ak chceme udržať hodnotu viac ako je limit dlhej premennej. Na tento účel musíme použiť rôzne typy údajov, tj VBA „String“ alebo „Variant“

Pamätajte si, že v okamihu, keď prekročí číslo 2147483647, dostaneme chybu pretečenia vo VBA s dátovým typom LONG. Ak chcete uložiť viac ako toto číslo, musíme použiť dátový typ „String“ alebo „Variant“.

Pre reťazec

Kód:

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

Pre variant

Kód:

 Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub 

Keď spustíme vyššie uvedené kódy, zobrazí sa spomínané číslo.