Tip de date lungi VBA (variabilă dim)

Tip variabil lung

VBA Lung tipul de date este utilizat pentru a stoca valori de date foarte lungi (-2.147.483.648 până la 2.147.483.648). Poate stoca numai numere întregi (fără zecimale).

Pentru a declara o variabilă lungă, utilizați declarația Dim (prescurtare pentru Dimension):

1 Dim lngA ca Long

Apoi, pentru a atribui o valoare unei variabile, pur și simplu utilizați semnul egal:

1 lngA = 30000

Punerea acestui lucru într-o procedură arată astfel:

12345678 Sub lngExample ()'declara variabila lungăDim lngA ca Long'populează variabila lungălngA = 30000'arată caseta de mesajeMsgBox lngASfârșitul Sub

Dacă rulați codul de mai sus, va fi afișată următoarea casetă de mesaj.

Tipul de date LongLong

Tipul de date LongLong este disponibil numai în versiunea pe 64 de biți a Microsoft Office. Dacă rulați o versiune de 32 de biți a Office pe o mașină de 64 de biți, acest tip de date nu va fi disponibil. Acceptă numere cuprinse între -9.223.372.036.854.775.808 și 9.223.372.036.854.775.807.

1 Dim lngA ca LongLong

Tipul de date LongPtr

LongPtr a fost introdus în VBA pentru a suporta versiunea pe 64 de biți a Microsoft Office. Pe un sistem pe 32 de biți, este tratat ca un Long și pe sistemele pe 64 de biți este tratat ca pe un LongLong.

1 Dim lngA ca LongPtr

Notă: LongPtr nu este disponibil în Excel 2007 sau versiuni anterioare.

Valori zecimale și tipuri lungi de date

Variabilele lungi nu pot stoca valori zecimale. Dacă treceți un număr zecimal lung, numărul zecimal va fi rotunjit pentru a elimina zecimalul.

Prin urmare, dacă ați rula procedura de mai jos:

12345678 Sub LngExampleB ()'declara variabila lungăDim lngA ca Long'populează variabila lungălngA = 3524.12'arată caseta de mesajeMsgBox lngASfârșitul Sub

Valoarea zecimală va fi rotunjită în jos, returnând următorul mesaj:

Cu toate acestea, acest cod de mai jos:

12345678 Sub LngExampleB ()'declara variabila lungăDim lngA ca Long'populează variabila lungălngA = 3524.12'arată caseta de mesajeMsgBox lngASfârșitul Sub

Ar returna următoarea casetă de mesaj (rotunjind în sus):

Tip de date zecimal / dublu

Dacă doriți să stocați o zecimală, va trebui să declarați o variabilă care să permită zecimale. Există 3 tipuri de date pe care le puteți utiliza - Single, Double sau Currency.

1 Dim sngPreț ca Single
1 Dim dblPrice ca Dublu
1 Reduceți prețul ca monedă

Tipul de date unic va rotunji punctul zecimal ușor diferit față de tipul de date dublu și monedă, deci este de preferat să folosiți dublu la simplu pentru precizie. Un dublu poate avea până la 12 zecimale, în timp ce Moneda și Single pot avea până la 4 zecimale.

Declarați variabila lungă la nivel de modul sau global

În exemplele anterioare, am declarat variabila Long într-o procedură. Variabilele declarate cu o procedură pot fi utilizate numai în cadrul acestei proceduri.

În schimb, puteți declara variabile lungi la nivel de modul sau global.

Nivelul modulului

Nivelul modulului variabilele sunt declarate în partea de sus a modulelor de cod cu Dim afirmație.

Aceste variabile pot fi utilizate cu orice procedură din acel modul de cod.

Nivel global

La nivel global variabilele sunt de asemenea declarate în partea de sus a modulelor de cod. Cu toate acestea, în loc să utilizați fișierul Dim declarație, utilizați Public declarație pentru a indica faptul că variabila lungă este disponibilă pentru a fi utilizată în întregul proiect VBA.

1 Public lngA as Long

Dacă ar fi să declarați variabila lungă la un nivel de modul și apoi să încercați să o utilizați într-un alt modul, ar apărea o eroare.

Cu toate acestea, dacă ați fi folosit cuvântul cheie public pentru a declara variabila lungă, eroarea nu ar apărea și procedura ar rula perfect.

Formatează Long Stored ca șir

Poate exista o perioadă în care doriți să formatați un tip de date lung într-un șir - de exemplu o dată sau poate doriți să afișați un simbol valutar.

Pentru a realiza acest lucru, utilizați funcția Format.

Următoarea procedură:

1234567891011 Sub TestLongToString ()'declarați variabila șirDim strDate ca șir'declarați lungul și completați valoareaDim lngDate cât timplngDate = 44055'converti lungul într-un șir formatat ca datăstrDate = Format (lngDate, "dd mmmm aaaa")'vizualizați rezultatulDebug.Print strDateSfârșitul Sub

ar returna rezultatul de mai jos:

și următoarea procedură

1234567891011 Sub TestLongtoCurrencyString ()'declarați variabila șirDim strMoney As String'declarați lungul și completați valoareaDim lngValue As LonglngValue = 44055'convertiți lungul într-un șir cu un simbol valutarstrMoney = Format (lngValue, "$ #, ## 0")'vizualizați rezultatulMsgBox strMoneySfârșitul Sub

ar returna acest rezultat:

wave wave wave wave wave