VBA - Restituisce un valore da una procedura secondaria

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

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave