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: