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.

Dátový typ VBA Long vyžaduje 4 bajty pamäte vášho počítača. Toto je dvojitá celočíselná premenná pamäť dátového typu (2 bajty) a polovica dvojitej premennej pamäte dátového typu (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é príklady, 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.

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, tu spôsobí 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. Na tento účel 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 dáta do 32.768 th riadky.

Teraz, keď znova spustím ten istý kód, hodnotu nezískam. Skôr dostanem chybu 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ž musíte premýšľať o tom, čo ak chceme udržať hodnotu viac ako limit dlhej premennej. Na tento účel musíme použiť rôzne dátové typy, tj. VBA „String“ alebo „Variant“.

Pamätajte, že v okamihu, keď prekročí číslo 2147483647, dostaneme vo VBA chybu pretečenia 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.

Zaujímavé články...