1. Χρησιμοποιώντας μεταβλητή σε επίπεδο μονάδας:
Αυτή είναι η απλούστερη προσέγγιση για έναν παγκόσμιο μετρητή που παραμένει σε όλη τη διάρκεια της συνόδου VBA (μέχρι να κλείσει το αρχείο Excel).
`` `vba
Ρητή επιλογή
Ιδιωτικός μετρητής όσο το δυνατόν περισσότερο "Δηλώστε τη μεταβλητή μετρητή
Sub incrementCounter ()
Counter =Counter + 1
MSGBOX "Counter Value:" &Counter
Τερματισμός
Sub ResetCounter ()
μετρητής =0
Msgbox "counter reset σε 0"
Τερματισμός
`` `
* `Επιλογή explicit`: Αυτό είναι ζωτικής σημασίας για καλές πρακτικές κωδικοποίησης. Σας αναγκάζει να δηλώσετε ρητά όλες τις μεταβλητές.
* `Private Counter as Long`: Αυτό δηλώνει μια μεταβλητή που ονομάζεται `counter 'τύπου` long' (ένας μακρύς ακέραιος), ο οποίος μπορεί να κρατήσει μεγαλύτερους αριθμούς από τον `ακέραιο». Η λέξη -κλειδί «ιδιωτική» το καθιστά προσβάσιμο μόνο μέσα στην ενότητα στην οποία δηλώνεται.
* `incrementCounter` και` resetcounter` υπορουτίνες: Αυτά δείχνουν πώς να αυξήσουν και να επαναφέρουν τον πάγκο.
2. Χρησιμοποιώντας ένα κυψέλη φύλλου εργασίας ως μετρητή:
Αυτή η μέθοδος αποθηκεύει τον μετρητή σε ένα συγκεκριμένο κελί σε ένα φύλλο εργασίας. Ο μετρητής παραμένει ακόμη και αν το Excel είναι κλειστό και άνοιξε ξανά (εκτός αν η τιμή κυττάρων αλλάξει χειροκίνητα).
`` `vba
Sub IncrementWorkSheetCounter ()
Dim WS ως φύλλο εργασίας
SET ws =thisworkbook.sheets ("sheet1") 'Αλλαγή "φύλλο1" στο όνομα του φύλλου σας
WS.Range ("A1"). Value =WS.Range ("A1"). Τιμή + 1 'Αύξηση του μετρητή στο κελί A1
Msgbox "Counter Value:" &Ws.Range ("A1").
Τερματισμός
Sub ResetWorkSheetCounter ()
Dim WS ως φύλλο εργασίας
SET ws =thisworkbook.sheets ("sheet1") 'Αλλαγή "φύλλο1" στο όνομα του φύλλου σας
WS.Range ("A1"). Value =0
Msgbox "counter reset σε 0"
Τερματισμός
`` `
* Αυτή η προσέγγιση είναι πιο επίμονη από μια μεταβλητή σε επίπεδο μονάδας, αλλά βασίζεται σε ένα συγκεκριμένο κύτταρο και επομένως είναι λιγότερο καθαρή από την καθαρά VBA.
3. Χρησιμοποιώντας μια μονάδα κλάσης για έναν πιο ενθυλακωμένο μετρητή:
Αυτή είναι μια πιο προηγμένη προσέγγιση που παρέχει καλύτερη οργάνωση και επαναχρησιμοποίηση. Μια μονάδα κλάσης δημιουργεί ένα προσαρμοσμένο αντικείμενο που ενσωματώνει τα δεδομένα και τις μεθόδους του μετρητή.
`` `vba
«Σε μια μονάδα κλάσης (π.χ., ονομάζεται" counterclass ")
Ρητή επιλογή
Ιδιωτική αντεπίθεση για πολύ καιρό
Η δημόσια ιδιοκτησία παίρνει counter () πολύ καιρό
Counter =Countervalue
Τελική ιδιοκτησία
Δημόσιο υποκείμενο ()
Countervalue =CounterValue + 1
Τερματισμός
Δημόσιο sub reset ()
αντεπίθεση =0
Τερματισμός
«Σε μια τυποποιημένη ενότητα
Sub usecounterClass ()
Dim MyCounter ως αντιπαραθέσεις
Ορίστε mycounter =νέα αντιπαραθέσεις
mycounter.increment
Debug.print "Counter Value:" &MyCounter.counter
mycounter.increment
Debug.print "Counter Value:" &MyCounter.counter
mycounter.reset
Debug.print "Counter Value:" &MyCounter.counter
Ορίστε myCounter =τίποτα «σημαντικό:απελευθερώστε το αντικείμενο από τη μνήμη
Τερματισμός
`` `
* Πλεονεκτήματα της μονάδας κλάσης: Καλύτερη οργάνωση κώδικα, επαναχρησιμοποίηση (μπορείτε να δημιουργήσετε πολλαπλά αντικείμενα αντίθεσης) και να κρύβετε τα δεδομένα (το `countervalue` είναι ιδιωτικό).
Επιλογή της σωστής προσέγγισης:
* Μεταβλητή επιπέδου μονάδας: Απλούστερη για έναν ενιαίο, προσωρινό μετρητή σε μία μόνο συνεδρία VBA.
* φύλλο εργασίας: Καλύτερο για εμμονή σε όλες τις συνεδρίες του Excel, αλλά λιγότερο κομψή από την άποψη κωδικοποίησης.
* Μονάδα κλάσης: Καλύτερα για σύνθετα σενάρια, πολλαπλοί μετρητές ή όταν χρειάζεστε καλύτερη οργάνωση κώδικα και επαναχρησιμοποίηση. Αυτή είναι γενικά η συνιστώμενη προσέγγιση για οτιδήποτε πέρα από έναν πολύ απλό μετρητή.
Θυμηθείτε να αντικαταστήσετε το "Sheet1" "με το πραγματικό όνομα του φύλλου εργασίας σας εάν χρησιμοποιείτε τη μέθοδο κυττάρων φύλλου εργασίας. Επιλέξτε την προσέγγιση που ταιριάζει καλύτερα στις ανάγκες σας και το στυλ κωδικοποίησης. Για τις περισσότερες εφαρμογές πέρα από τους απλούς μετρητές, η χρήση μιας μονάδας κλάσης συνιστάται ιδιαίτερα για καλύτερη οργάνωση και συντήρηση.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα