Questo tutorial ti insegnerà come restituire un valore da una procedura secondaria in VBA.
Una procedura secondaria non è progettata per restituire un valore, questo è ciò per cui viene utilizzata una procedura di funzione. Tuttavia, potrebbe esserci un momento in cui si esegue del codice in una procedura secondaria in cui è necessario ottenere un valore da tale procedura secondaria. Il modo per farlo è utilizzare il modulo o le variabili globali o utilizzare una procedura secondaria per popolare un foglio Excel.
Utilizzo delle variabili per restituire un valore
Puoi dichiarare variabili a livello di modulo. Quando si esegue questa operazione, tali variabili possono essere utilizzate ovunque all'interno del modulo e le variabili conservano i propri valori. Per dichiarare una variabile a livello di modulo, dichiara semplicemente la variabile nella parte superiore del modulo di codice:
123456789 | Opzione esplicitaDim dblQty come DoubleSottotestA()'chiama il sottotitolo TestBChiama TestB'mostra il valore della variabile nella finestra del moduloDebug.Print dblQtyFine sottotitolo |
1234 | SottoprovaB()'popola la variabile del modulodblQty = 900Fine sottotitolo |
Per metterli insieme, eseguiremmo TestA, che a sua volta chiamerebbe TestB e ci darebbe il valore di 900 nella finestra immediata.
Questo funzionerebbe solo all'interno del modulo, poiché la variabile è stata dichiarata utilizzando l'istruzione Dim a livello di modulo.
Variabile globale
Puoi dichiarare la variabile a livello globale per usarla in tutti i moduli del tuo progetto.
Utilizzo di una procedura secondaria per popolare un foglio Excel
La procedura secondaria di seguito popolerà direttamente l'intervallo da A1 a C1 nel foglio Excel, restituendo così i valori alle celle della procedura secondaria.
12345 | SottoPopola Intervallo()Intervallo ("A1") = "Prodotto"Intervallo ("B1") = "Quantità"Intervallo ("C1") = "Costo"Fine sottotitolo |
È quindi possibile fare riferimento a tali valori in un'altra procedura facendo riferimento ai valori della cella:
1234567 | Sub Recupero Intervallo()Dim Product as String, Quant as long, Cost as doubleProdotto = Intervallo ("A1")Quant = Intervallo ("B1")Costo = Intervallo ("C1")Fine sottotitolo |