VBA Long (příklad) | Průvodce krok za krokem k dlouhému datovému typu v aplikaci Excel VBA
Co je dlouhý datový typ ve VBA?
Long je datový typ ve VBA, který se používá k ukládání číselných hodnot, víme, že celé číslo obsahuje také číselné hodnoty, ale Long se liší od celých čísel, protože rozsah pro ukládání dat je velmi velký v případě dlouhého datového typu také v long datový typ můžeme také obsahovat desítkové hodnoty, jedná se o vestavěný datový typ.
„Dlouhý“, jak název napovídá, měl by mít hodnotu něčeho velkého. „Long“ je číselný datový typ ve VBA Excel.
Dlouhý datový typ v aplikaci Excel VBA může obsahovat hodnoty od 0 do 2, 147, 483, 647 pro kladná čísla a pro záporné číslo může obsahovat od 0 do -2, 147, 483, 648.
Datový typ VBA Long vyžaduje 4 bajty paměti vašeho počítače, jedná se o dvojitou celočíselnou proměnnou paměť typu dat (2 bajty) a polovinu dvojité proměnné paměti typu dat (8 bajtů)
Nikdy jsem neviděl scénář, kdy bych chtěl během své krátké kariéry plně využít limit datového typu VBA Long. Ale ukážu vám některé příklady, abyste tomu lépe porozuměli.
Příklady dlouhého datového typu VBA
Níže jsou uvedeny příklady datového typu Excel VBA Long.
Tuto šablonu VBA Long Data Type Excel si můžete stáhnout zde - VBA Long Data Type Excel Template
Dlouhý příklad VBA č. 1
Jakmile deklarujete proměnný datový typ jako „dlouhý“, můžete přiřadit hodnoty od -2, 147, 483, 648 do 2, 147, 483, 648.
Například deklarujte proměnnou jako dlouhý datový typ.
Kód:
Sub Long_Example1 () Dim k As Long End Sub
Pojďme přiřadit hodnotu jako celkový počet řádků listu.
Chcete-li získat celkový počet řádků v kódu listu aplikace Excel, je „Řádky. Počet"
Kód:
Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub
Nyní zobrazte hodnotu v okně se zprávou.
Kód:
Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub
Spusťte tento kód a podívejte se, jaký je celkový počet řádků v listu.
Říká se, že v listu máme více než 1 milion řádků.
Nyní pro lepší pochopení změním datový typ z LONG na INTEGER.
Kód:
Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub
Pokud spustím kód VBA, zobrazí se chybová zpráva jako „Přetečení“.
Důvod, proč jsme dostali tuto chybu ve VBA, protože datový typ „Integer“ může obsahovat pouze hodnoty od -31768 do 32767. V tomto případě „Řádky. Count ”vrátí číslo, které je větší než limit proměnné“ integer ”.
Přiřazení hodnoty více než 1 milion proměnné, která může obsahovat pouze 32767, způsobí zde chybu přetečení.
VBA Long Příklad č. 2
Najděte poslední řádek pomocí dlouhé proměnné
Nalezení posledního použitého řádku listu je nejdůležitějším z kódování. Aby bylo možné najít poslední použitý řádek listu, musí být deklarována proměnná. Při deklaraci proměnné a přiřazení datového typu je nutný zdravý rozum.
Předpokládejme, že máte datové konce na 25 000 řádcích, jak je znázorněno na následujícím obrázku.
Teď vím, že poslední použité číslo řádku je 25000, proto nepotřebujeme datový typ „LONG“, protože datový typ „INTEGER“ mi může dát poslední řádek.
Další informace najdete v níže uvedeném kódu.
Kód:
Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox k End Sub
Pokud spustím tento kód, dostanu poslední použité číslo řádku listu, na kterém v tuto chvíli pracuji.
Jako kodér je důležité znát velikost dat, která budete mít v budoucnu. Protože v tuto chvíli mohou data končit na 25 000. řádku, ale pokud se data zvýší nad limit „Integer“, tj. 32767, způsobí to chybu přetečení.
Například zvýším data na 32768. řádků.
Teď, když znovu spustím stejný kód, nedostanu hodnotu, dostanu chybu, jak je uvedeno níže.
Nezapomeňte, že jsem zvýšil limit o pouhou 1 nad limit hodnoty „Integer“, takže jsem dostal chybu Overflow.
Před přiřazením datového typu k proměnné je tedy důležité znát velikost vašich dat. Vždy je lepší volbou deklarovat proměnnou jako „DLOUHOU“, aniž byste v budoucnu mysleli na velikost svých dat.
Alternativy k Excel VBA Long Variable
Určitě už musíte přemýšlet o tom, co když chceme udržet hodnotu větší než limit dlouhé proměnné. K tomu musíme použít různé datové typy, tj. VBA „String“ nebo „Variant“
Pamatujte si, že v okamžiku, kdy překročí číslo 2147483647, dostaneme chybu přetečení ve VBA s datovým typem LONG. Abychom mohli uložit více než toto číslo, musíme použít datový typ „String“ nebo „Variant“.
Pro řetězec
Kód:
Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub
Pro variantu
Kód:
Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub
Když spustíme výše uvedené kódy, zobrazí se uvedené číslo.