1. Utilizzando una variabile a livello di modulo:
Questo è l'approccio più semplice per un contatore globale che persiste durante la sessione VBA (fino alla chiusura del file Excel).
`` `VBA
Opzione esplicita
Contatore privato finché 'dichiara il contatore variabile
Sub incrementarCounter ()
contatore =contatore + 1
MSGBox "Valore contatore:" e contatore
Fine sub
Sub resetCounter ()
contatore =0
Msgbox "Contatore reset su 0"
Fine sub
`` `
* `Opzione esplicita`: Questo è cruciale per le buone pratiche di codifica. Ti costringe a dichiarare esplicitamente tutte le variabili.
* `Contatore privato come Long`: Ciò dichiara una variabile denominata `Counter` di tipo` long` (un intero lungo), che può contenere numeri più grandi di `intero '. La parola chiave `Private` lo rende accessibile solo all'interno del modulo in cui è dichiarato.
* `incrementcounter` e` resetCounter` subroutines: Questi dimostrano come incrementare e ripristinare il contatore.
2. Usando una cella del foglio di lavoro come contatore:
Questo metodo memorizza il contatore in una cella specifica su un foglio di lavoro. Il contatore persiste anche se Excel viene chiuso e riaperto (a meno che il valore della cella non venga modificato manualmente).
`` `VBA
Sub incrementworksheetCounter ()
Dim ws come foglio di lavoro
Imposta ws =thisworkbook.sheets ("sheet1") 'modifica "foglio1" sul nome del foglio
Ws.Range ("A1"). Valore =Ws.Range ("A1"). Valore + 1 'incremento del contatore nella cella A1
MSGBox "Valore contatore:" &Ws.Range ("A1"). Valore
Fine sub
Sub resetWorkSheetCounter ()
Dim ws come foglio di lavoro
Imposta ws =thisworkbook.sheets ("sheet1") 'modifica "foglio1" sul nome del foglio
Ws.Range ("A1"). Valore =0
Msgbox "Contatore reset su 0"
Fine sub
`` `
* Questo approccio è più persistente di una variabile a livello di modulo, ma si basa su una cella specifica ed è quindi meno pulito da una prospettiva puramente VBA.
3. Utilizzando un modulo di classe per un contatore più incapsulato:
Questo è un approccio più avanzato che fornisce una migliore organizzazione e riusabilità. Un modulo di classe crea un oggetto personalizzato che incapsula i dati e i metodi del contatore.
`` `VBA
'In un modulo di classe (ad es. Chiamato "Contriclasse")
Opzione esplicita
Contrappalto privato nel tempo
Proprietà pubblica Ottieni Counter () a lungo
Counter =Countervalue
Proprietà finale
Public Sub increment ()
Controvalore =Controvalore + 1
Fine sub
Public Sub reset ()
Controvalore =0
Fine sub
'In un modulo standard
Sub USECOUNTERCLASS ()
Dim MyCounter come controspizio
Imposta myCounter =new Counterclass
mycounter.increment
Debug.print "Contra valore:" &mycounter.counter
mycounter.increment
Debug.print "Contra valore:" &mycounter.counter
mycounter.reset
Debug.print "Contra valore:" &mycounter.counter
Imposta MyCounter =Niente 'importante:rilasciare l'oggetto dalla memoria
Fine sub
`` `
* Vantaggi del modulo di classe: Migliore organizzazione del codice, riusabilità (è possibile creare più oggetti contanti) e nascondere i dati (il `CounterValue` è privato).
Scegliere l'approccio giusto:
* Variabile a livello di modulo: Più semplice per un singolo contatore temporaneo all'interno di una singola sessione VBA.
* Cella del foglio di lavoro: Meglio per la persistenza attraverso le sessioni di Excel, ma meno elegante dal punto di vista della codifica.
* Modulo di classe: Meglio per scenari complessi, più contatori o quando hai bisogno di una migliore organizzazione e riusabilità del codice. Questo è generalmente l'approccio raccomandato per qualsiasi cosa al di là di un contatore molto semplice.
Ricorda di sostituire `" Sheet1 "` con il nome effettivo del tuo foglio di lavoro se si utilizza il metodo della cella del foglio di lavoro. Scegli l'approccio che si adatta meglio alle tue esigenze e allo stile di codifica. Per la maggior parte delle applicazioni al di là di semplici contatori, l'utilizzo di un modulo di classe è altamente raccomandato per una migliore organizzazione e manutenibilità.
software © www.354353.com