Tipo di dati lungo VBA (variabile dim)

Tipo variabile lungo

Il VBA Lungo il tipo di dati viene utilizzato per memorizzare valori di dati molto lunghi (da -2.147.483.648 a 2.147.483.648). Può memorizzare solo numeri interi (senza cifre decimali).

Per dichiarare una variabile Long, usi l'istruzione Dim (abbreviazione di Dimension):

1 Dim lngA come Long

Quindi, per assegnare un valore a una variabile, utilizzare semplicemente il segno di uguale:

1 lngA = 30000

Inserendo questo in una procedura si presenta così:

12345678 Sub lngEsempio()'dichiarare la variabile lungaDim lngA come Long'popola la variabile lungalngA = 30000'mostra la finestra del messaggioMsgBox lngAFine sottotitolo

Se esegui il codice sopra, verrà mostrata la seguente finestra di messaggio.

Tipo di dati LongLong

Il tipo di dati LongLong è disponibile solo nella versione a 64 bit di Microsoft Office. Se si esegue una versione di Office a 32 bit su un computer a 64 bit, questo tipo di dati non sarà disponibile. Supporta numeri nell'intervallo da -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807.

1 Dim lngA come LongLong

Tipo di dati LongPtr

Il LongPtr è stato introdotto in VBA per supportare la versione a 64 bit di Microsoft Office. Su un sistema a 32 bit, viene trattato come Long e su sistemi a 64 bit viene trattato come LongLong.

1 Dim lngA come LongPtr

Nota: LongPtr non è disponibile in Excel 2007 o versioni precedenti.

Valori decimali e tipi di dati lunghi

Le variabili lunghe non possono memorizzare valori decimali. Se si passa un numero decimale lungo, il numero decimale verrà arrotondato per rimuovere il decimale.

Pertanto, se dovessi eseguire la procedura seguente:

12345678 Sub LngEsempioB()'dichiarare la variabile lungaDim lngA come Long'popola la variabile lungalngA = 3524,12'mostra la finestra del messaggioMsgBox lngAFine sottotitolo

Il valore decimale verrebbe arrotondato per difetto, restituendo il seguente messaggio:

Tuttavia, questo codice di seguito:

12345678 Sub LngEsempioB()'dichiarare la variabile lungaDim lngA come Long'popola la variabile lungalngA = 3524,12'mostra la finestra del messaggioMsgBox lngAFine sottotitolo

Restituirebbe la seguente finestra di messaggio (arrotondando per eccesso):

Tipo di dati decimale/doppio

Se si desidera memorizzare una posizione decimale, è necessario dichiarare una variabile che consenta le posizioni decimali. Ci sono 3 tipi di dati che puoi usare: Singolo, Doppio o Valuta.

1 Dim sngPrezzo come singolo
1 Dim dblPrice as Double
1 Dim curPrezzo come valuta

Il tipo di dati Single arrotonderà la virgola in modo leggermente diverso rispetto al tipo di dati double e currency, quindi è preferibile utilizzare double a single per la precisione. Un Double può avere fino a 12 decimali mentre Currency e Single possono avere entrambi fino a 4 decimali.

Dichiara variabile lunga a livello di modulo o globale

Negli esempi precedenti, abbiamo dichiarato la variabile Long all'interno di una procedura. Le variabili dichiarate con una procedura possono essere utilizzate solo all'interno di tale procedura.

Invece, puoi dichiarare variabili Long a livello di modulo o globale.

Livello modulo

Livello modulo le variabili sono dichiarate all'inizio dei moduli di codice con il fioco dichiarazione.

Queste variabili possono essere utilizzate con qualsiasi procedura in quel modulo di codice.

Livello globale

Livello globale le variabili sono anche dichiarate nella parte superiore dei moduli di codice. Tuttavia, invece di usare il fioco affermazione, usa il Pubblico istruzione per indicare che la variabile long è disponibile per essere utilizzata in tutto il progetto VBA.

1 LNGA pubblico come Long

Se dovessi dichiarare la variabile long a livello di modulo e poi provare a usarla in un modulo diverso, si verificherebbe un errore.

Tuttavia, se avessi usato la parola chiave Public per dichiarare la variabile long, l'errore non si sarebbe verificato e la procedura sarebbe stata eseguita perfettamente.

Formato a lungo archiviato come stringa

Potrebbe esserci un momento in cui desideri formattare un tipo di dati lungo in una stringa, ad esempio una data o potresti voler visualizzare un simbolo di valuta.

Per ottenere ciò, si utilizza la funzione Format.

La seguente procedura:

1234567891011 Sub TestLongToString()'dichiarare la variabile stringaDim strDate come stringa'dichiarare il lungo e popolare il valoreDim lngDate as longlngDate = 44055'converti il ​​long in una stringa formattata come datastrDate = Format(lngDate, "gg mmmm aaaa")'visualizza il risultatoDebug.Print strDateFine sottotitolo

restituirebbe il risultato seguente:

e la seguente procedura

1234567891011 Sub TestLongtoCurrencyString()'dichiarare la variabile stringaDim strMoney As String'dichiarare il lungo e popolare il valoreDim lngValue As LonglngValue = 44055'converti il ​​long in una stringa con un simbolo di valutastrMoney = Format(lngValue, "$#,##0")'visualizza il risultatoMsgBox strMoneyFine sottotitolo

restituirebbe questo risultato:

wave wave wave wave wave