Dlouhý datový typ VBA (proměnná dimenze)

Dlouhý variabilní typ

VBA Dlouho datový typ se používá k ukládání velmi dlouhých hodnot dat (-2 147 483 648 až 2 147 483 648). Může ukládat pouze celá čísla (bez desetinných míst).

Chcete -li deklarovat proměnnou Long, použijte příkaz Dim (zkratka pro Dimension):

1 Dim lngA as Long

Potom pro přiřazení hodnoty proměnné jednoduše použijte znaménko rovnosti:

1 lngA = 30 000

Uvedení do postupu vypadá takto:

12345678 Sub lngExample ()'deklarujte dlouhou proměnnou.'Dim lngA as Long'naplňte dlouhou proměnnoulngA = 30 000'zobrazit pole se zprávouMsgBox lngAEnd Sub

Pokud spustíte výše uvedený kód, zobrazí se následující okno se zprávou.

Datový typ LongLong

Datový typ LongLong je k dispozici pouze v 64bitové verzi sady Microsoft Office. Pokud používáte 32bitovou verzi Office na 64bitovém počítači, tento datový typ nebude k dispozici. Podporuje čísla v rozmezí od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807.

1 Dim lngA jako LongLong

Datový typ LongPtr

LongPtr byl zaveden do VBA za účelem podpory 64bitové verze Microsoft Office. Na 32bitovém systému je považován za Long a v 64bitových systémech je považován za LongLong.

1 Dim lngA jako LongPtr

Poznámka: LongPtr není k dispozici v aplikaci Excel 2007 nebo starší.

Desetinné hodnoty a dlouhé datové typy

Dlouhé proměnné nemohou ukládat desetinné hodnoty. Pokud zadáte desetinné číslo dlouhé, bude desetinné číslo zaokrouhleno, aby se odstranilo.

Pokud byste tedy spustili níže uvedený postup:

12345678 Sub LngExampleB ()'deklarujte dlouhou proměnnou.'Dim lngA as Long'naplňte dlouhou proměnnoulngA = 3524,12'zobrazit pole se zprávouMsgBox lngAEnd Sub

Desetinná hodnota bude zaokrouhlena dolů a vrátí následující zprávu:

Tento kód však níže:

12345678 Sub LngExampleB ()'deklarujte dlouhou proměnnou.'Dim lngA as Long'naplňte dlouhou proměnnoulngA = 3524,12'zobrazit pole se zprávouMsgBox lngAEnd Sub

Vrátí následující pole se zprávou (zaokrouhleno nahoru):

Desetinný / dvojitý datový typ

Pokud chcete uložit desetinné místo, budete muset deklarovat proměnnou, která umožňuje desetinná místa. Můžete použít 3 datové typy - Single, Double nebo Currency.

1 Dim sngCena jako Single
1 Dim dblCena jako dvojnásobek
1 Dim curPrice jako měna

Datový typ Single zaokrouhlí desetinnou čárku mírně odlišně na datový typ double a currency, takže je vhodnější použít double to single pro přesnost. Double může mít až 12 desetinných míst, zatímco Currency a Single mohou mít až 4 desetinná místa.

Deklarujte dlouhou proměnnou na úrovni modulu nebo na globální úrovni

V předchozích příkladech jsme deklarovali proměnnou Long v rámci procedury. Proměnné deklarované pomocí procedury lze použít pouze v rámci této procedury.

Místo toho můžete deklarovat dlouhé proměnné na úrovni modulu nebo na globální úrovni.

Úroveň modulu

Úroveň modulu proměnné jsou deklarovány v horní části modulů kódu pomocí Ztlumit tvrzení.

Tyto proměnné lze použít s jakoukoli procedurou v tomto modulu kódu.

Globální úroveň

Globální úroveň proměnné jsou také deklarovány v horní části modulů kódu. Místo použití Ztlumit prohlášení, použijte Veřejnost prohlášení, které naznačuje, že dlouhá proměnná je k dispozici pro použití v celém vašem projektu VBA.

1 Veřejný lngA jako dlouhý

Pokud byste deklarovali dlouhou proměnnou na úrovni modulu a poté ji zkusili použít v jiném modulu, došlo by k chybě.

Pokud byste však k deklaraci dlouhé proměnné použili klíčové slovo Public, k chybě by nedošlo a procedura by běžela perfektně.

Formát dlouho uložen jako řetězec

Může se stát, že budete chtít formátovat dlouhý datový typ na řetězec - například datum nebo budete chtít zobrazit symbol měny.

Chcete -li toho dosáhnout, použijte funkci Formát.

Následující postup:

1234567891011 Dílčí testLongToString ()'deklarujte proměnnou řetězceDim strDate jako řetězec'deklarujte long a naplňte hodnotuDim lngDate tak dlouholngDate = 44055'převést dlouhý na řetězec formátovaný jako datum.'strDate = Formát (lngDate, "dd mmmm rrrr")'zobrazit výsledekDebug.Print strDateEnd Sub

vrátí výsledek níže:

a následující postup

1234567891011 Dílčí testLongtoCurrencyString ()'deklarujte proměnnou řetězceDim strMoney As String'deklarujte long a naplňte hodnotuDim lngValue As LonglngValue = 44055'převeďte dlouhý na řetězec se symbolem měny.'strMoney = Formát (lngValue, "$#, ## 0")'zobrazit výsledekMsgBox strMoneyEnd Sub

vrátí tento výsledek:

wave wave wave wave wave