Πώς να δημιουργήσετε συμβάντα επιπέδου εφαρμογής στο Excel VBA

Πίνακας περιεχομένων:

Anonim

Τα συμβάντα επιπέδου εφαρμογής λειτουργούν σε ολόκληρη την εφαρμογή (Excel σε αυτήν την αναφορά). Αλλά η ενεργοποίηση της εκδήλωσης της εφαρμογής δεν είναι τόσο εύκολη όσο η δημιουργία συμβάντων βιβλίου εργασίας ή φύλλου εργασίας. Σας διαβεβαιώνω όμως ότι δεν είναι τόσο δύσκολο. Σε αυτό το άρθρο, θα μάθουμε πώς να δημιουργούμε και να χρησιμοποιούμε το Event Event στο Excel VBA σε μερικά απλά βήματα.

Βήμα 1: Δημιουργήστε ένα αντικείμενο συμβάντος σε μια ενότητα τάξης

Για να δημιουργήσουμε ένα αντικείμενο συμβάντος, πρέπει να χρησιμοποιήσουμε την ενότητα κλάσης.

  • Εισαγάγετε μια ενότητα κλάσης. Ονομάστε το όπως θέλετε. Το ονόμασα MyAppEvents.
  • Ορίστε μια μεταβλητή συμβάντων τύπου Εφαρμογής με λέξη -κλειδί WithEvents.
    Private WithEvents myApp As Application
  • Αρχικοποιήστε αυτό το συμβάν σε υπορουτίνα class_initialize ().
    Από το αναπτυσσόμενο μενού στα αριστερά, επιλέξτε κλάση. Στη συνέχεια, στο αναπτυσσόμενο μενού επάνω δεξιά, επιλέξτε προετοιμασία.

    Private Sub Class_Initialize () Set myApp = Sub End Application
  • Τώρα ορίστε τα συμβάντα που θέλετε να χρησιμοποιήσετε. Από το αναπτυσσόμενο μενού επάνω αριστερά, επιλέξτε το αντικείμενο συμβάντος. Όλες οι διαθέσιμες διαδικασίες χειρισμού συμβάντων θα είναι διαθέσιμες στο αναπτυσσόμενο μενού πάνω δεξιά. Επιλέξτε όποιο θέλετε και ορίστε τι θέλετε να κάνετε όταν ενεργοποιηθεί αυτό το συμβάν.
    Χρησιμοποιώ το SheetActivate Event. Κάθε φορά που ένας χρήστης αλλάζει μεταξύ φύλλων οποιουδήποτε ανοικτού βιβλίου εργασίας, θα εμφανίζει το όνομα του βιβλίου εργασίας και έχει επιλέξει ο χρήστης του φύλλου.

    Private Sub myApp_SheetActivate (ByVal Sh As Object) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub 

Μπορείτε να ορίσετε όσα συμβάντα θέλετε να ορίσετε εδώ.

Τα γεγονότα δεν θα αρχίσουν να λειτουργούν αμέσως. Αυτό ήταν το πρώτο βήμα. Δεδομένου ότι είναι μια ενότητα κλάσης, πρέπει να δημιουργήσουμε ένα αντικείμενο από αυτήν για να ενεργοποιήσουμε τα συμβάντα.

Τώρα πρέπει μόνο να ξεκινήσουμε αυτά τα γεγονότα από μια κανονική υπορουτίνα.

Βήμα 2: Δημιουργήστε μια υπορουτίνα εκκίνησης συμβάντων στην Κανονική ενότητα

Τώρα έχουμε ένα μάθημα εκδηλώσεων. Απλώς πρέπει να δημιουργήσουμε ένα αντικείμενο αυτής της κλάσης και να το προετοιμάσουμε. Μόλις εκτελέσουμε αυτό το υποπρόγραμμα, όλα τα καθορισμένα συμβάντα στην τάξη εκδηλώσεων θα αρχίσουν να λειτουργούν.

  • Τοποθετήστε μια κανονική μονάδα.
  • Ορίστε μια μεταβλητή της κλάσης που έχετε δημιουργήσει.
    Ιδιωτικό AppE ως MyAppEvents
  • Αρχικοποιήστε το σε μια υπορουτίνα. Μπορείτε να το ονομάσετε όπως θέλετε.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • Εκτελέστε αυτόν τον κωδικό χρησιμοποιώντας το πλήκτρο F5. Προαιρετικά, μπορείτε να αντιστοιχίσετε αυτήν τη μακροεντολή στο κουμπί στο φύλλο εργασίας εάν θέλετε να ξεκινήσετε τα συμβάντα από το φύλλο εργασίας.

Και γίνεται. Τώρα όποτε αλλάζετε φύλλα, θα εμφανίζεται ένα πλαίσιο μηνυμάτων με το όνομα του βιβλίου εργασίας και το φύλλο, αρκεί ο κωδικός που περιέχει το βιβλίο εργασίας να είναι ανοιχτός.

Toughταν σκληρό; Δεν νομίζω. Πείτε μου τι σκέφτεστε στην παρακάτω ενότητα σχολίων.

Ενεργοποίηση και απενεργοποίηση συμβάντων εφαρμογής VBA

Μόλις εκτελέσετε τη μακροεντολή στην κανονική λειτουργική μονάδα, θα ενεργοποιείται πάντα μέχρι να κλείσετε το βιβλίο εργασίας που περιέχει τα συμβάντα. Αλλά μπορεί να θέλετε να τα ενεργοποιούν και να τα απενεργοποιούν κατά βούληση. Υπάρχουν δύο τρόποι για να γίνει αυτό.

  • Ακυρώστε το αντικείμενο συμβάντος
  • Ορίστε το EnableEvents σε False

1. Ακύρωση του αντικειμένου συμβάντος

Σε ξεχωριστή υπορουτίνα, ορίστε το αντικείμενο συμβάντος σε τίποτα

Private Sub StopEvents () Ορισμός AppE = Τίποτα Τέλος Sub

Μόλις εκτελέσετε αυτόν τον κώδικα, τα συμβάντα θα σταματήσουν να λειτουργούν. Μπορείτε να το βάλετε σε ένα κουμπί στο φύλλο εργασίας για να σταματήσετε τα συμβάντα. Τώρα θα έχετε δύο κουμπιά για να ξεκινήσετε και να σταματήσετε αυτά τα συγκεκριμένα συμβάντα. Απλώς θα σταματήσει τα συμβάντα που δημιουργήθηκαν από το αντικείμενο AppE.

2. Ορίστε το EnableEvents σε False

Η δεύτερη μέθοδος είναι να απενεργοποιήσετε τα συμβάντα. Για να κάνουμε όλες τις εκδηλώσεις ασύμβατες, ορίζουμε την ιδιότητα EnableEvents της κλάσης Application σε Ψευδής.

Private Sub StopEvents () Application.EnableEvents = False End Sub

Ο παραπάνω κώδικας θα απενεργοποιήσει όλα τα συμβάντα. Ακόμα και τα προεπιλεγμένα συμβάντα excel. Δεν θα λειτουργήσουν μέχρι να τα ξεκινήσετε ξανά. Ακόμα κι αν εκτελέσετε την υπορουτίνα StartEvents () (παραπάνω), το συμβάν δεν θα λειτουργήσει. Για να λειτουργήσουν ξανά όλα τα συμβάντα, θα πρέπει να ορίσετε ξανά την ιδιότητα EnableEvents σε True.

Έτσι, εάν θέλετε οι εκδηλώσεις σας να λειτουργούν κάθε φορά που ξεκινάτε τα συμβάντα, προσθέστε αυτήν τη γραμμή κώδικα στο δευτερεύον.

Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub

Έναρξη Εκδηλώσεων Εφαρμογής Custome κάθε φορά που ανοίγει το βιβλίο εργασίας

Εάν αναπτύσσετε ένα εργαλείο για τον τελικό χρήστη, μπορεί να θέλετε τα γεγονότα να λειτουργούν αυτόματα. Σε αυτήν την περίπτωση, μπορείτε να βάλετε την εκκίνηση συμβάντος στο αντικείμενο του βιβλίου εργασίας με συμβάν Workbook_open (), αντί για μια κανονική λειτουργική μονάδα. Αυτό θα κάνει το αντικείμενο της εκδήλωσής σας να προετοιμαστεί μόλις ανοίξετε το βιβλίο εργασίας που περιέχει τα συμβάντα.

Λοιπόν, ναι, έτσι μπορείτε να χρησιμοποιήσετε την εκδήλωση εφαρμογής στο excel. Ενημερώστε με αν αυτό ήταν αρκετά επεξηγηματικό και σας βοήθησε να κατανοήσετε Συμβάντα επιπέδου εφαρμογής στο Excel VBA στην παρακάτω ενότητα σχολίων. Αν έχετε κάτι να προσθέσετε σε αυτό, γράψτε το και αυτό. Μπορείτε να ρωτήσετε τα ερωτήματά σας σχετικά με αυτό το άρθρο ή οποιοδήποτε άλλο θέμα που σχετίζεται με το Excel VBA στην παρακάτω ενότητα σχολίων.

Κατεβάστε το αρχείο εργασίας παρακάτω:

Οι εκδηλώσεις στο Excel VBA | Υπάρχουν επτά τύποι συμβάντων στο Excel. Κάθε εκδήλωση ασχολείται με διαφορετικό πεδίο. Το Application Event ασχολείται σε επίπεδο βιβλίου εργασίας. Τετράδιο εργασίας σε επίπεδο φύλλων. Εκδήλωση φύλλου εργασίας σε επίπεδο εμβέλειας.

Οι εκδηλώσεις φύλλου εργασίας στο Excel VBA| Το συμβάν φύλλου εργασίας είναι πραγματικά χρήσιμο όταν θέλετε οι μακροεντολές σας να εκτελούνται όταν εμφανίζεται ένα συγκεκριμένο συμβάν στο φύλλο.

Εκδηλώσεις βιβλίου εργασίας χρησιμοποιώντας VBA στο Microsoft Excel | Οι εκδηλώσεις του βιβλίου εργασίας λειτουργούν σε ολόκληρο το βιβλίο εργασίας. Δεδομένου ότι όλα τα φύλλα είναι μέρος του βιβλίου εργασίας, αυτά τα γεγονότα λειτουργούν και σε αυτά.

Αποτρέψτε την εκτέλεση automacro/eventmacro χρησιμοποιώντας VBA στο Microsoft Excel| Για να αποτρέψετε την εκτέλεση της μακροεντολής auto_open χρησιμοποιήστε το πλήκτρο shift.

Συμβάντα αντικειμένου γραφήματος χρησιμοποιώντας VBA στο Microsoft Excel| Τα διαγράμματα είναι πολύπλοκα αντικείμενα και υπάρχουν πολλά στοιχεία που τα έχετε προσαρτήσει. Για να φτιάξουμε τα Chart Events χρησιμοποιούμε την ενότητα Class.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα κάνουν τη δουλειά σας ακόμη πιο γρήγορη στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.