Αυτό το σεμινάριο θα συζητήσει τη διαφορά μεταξύ του VBA ActiveWorkbook και του ThisWorkbook.
ActiveWorkbook εναντίον ThisWorkbook
Είναι σημαντικό να γνωρίζετε τη διαφορά μεταξύ του ActiveWorkbook και του ThisWorkbook στο VBA:
Το ActiveWorkbook είναι το βιβλίο εργασίας που είναι προς το παρόν ενεργό (παρόμοιο με το πώς το ActiveSheet είναι το τρέχον ενεργό φύλλο). Αυτό το βιβλίο εργασίας είναι το βιβλίο εργασίας όπου είναι αποθηκευμένος ο κωδικός VBA. Αυτό το βιβλίο εργασίας δεν θα αλλάξει ποτέ.
ThisWorkbook
Σκεφτείτε το ThisWorkbook ως μεταβλητή αντικειμένου που σας επιτρέπει να αναφέρετε το βιβλίο εργασίας που περιέχει τον τρέχοντα κώδικα.
Αυτός ο κωδικός θα εμφανίσει ένα MessageBox με όνομα ThisWorkbook:
123 | Sub Show_ThisWorkbook ()MsgBox ThisWorkbook.NameΤέλος υπο |
ActiveWorkbook
Το ActiveWorkbook είναι μια μεταβλητή αντικειμένου που σας επιτρέπει να αναφέρετε το τρέχον ενεργό βιβλίο εργασίας.
Αυτός ο κωδικός θα εμφανίσει ένα MessageBox με όνομα ActiveWorkbook:
123 | Sub Show_ActiveWorkbook ()MsgBox ActiveWorkbook.NameΤέλος υπο |
Το VBA αναλαμβάνει το ActiveWorkbook
Όταν επιχειρείτε να εργαστείτε με αντικείμενα (π. Η VBA θα υποθέσει ότι αναφέρεστε στο ActiveWorkbook.
Αυτό λοιπόν:
1 | ActiveWorkbook.Sheets ("Sheet1"). Εύρος ("$ A $ 5"). Αξία = 1 |
Είναι το ίδιο με αυτό:
1 | Φύλλα ("Sheet1"). Εύρος ("$ A $ 5"). Αξία = 1 |
Τα νέα ή ανοιχτά βιβλία εργασίας είναι ενεργά
Κάθε φορά που δημιουργείτε ένα νέο βιβλίο εργασίας ή ανοίγετε ένα βιβλίο εργασίας, το βιβλίο εργασίας γίνεται "Ενεργό". Μπορείτε να δείτε μόνοι σας με αυτόν τον κωδικό που θα προσθέσει ένα βιβλίο εργασίας και θα ανακτήσει το όνομα του νέου βιβλίου εργασίας:
1234 | Sub Show_ActiveWorkbook_Add ()Τετράδια εργασίας. ΠροσθήκηMsgBox ActiveWorkbook.NameΤέλος υπο |
Αφού προσθέσετε ή ανοίξετε ένα βιβλίο εργασίας, μπορείτε να το αντιστοιχίσετε σε μια μεταβλητή χρησιμοποιώντας το αντικείμενο ActiveWorkbook. Θα σας δείξουμε πώς στα παρακάτω παραδείγματα:
Παραδείγματα ThisWorkbook και ActiveWorkbook
Εναλλαγή ενεργού βιβλίου εργασίας
Αλλάξτε το ενεργό βιβλίο εργασίας χρησιμοποιώντας το όνομα του βιβλίου εργασίας:
1 | Τετράδια εργασίας ("Book1"). Ενεργοποιήστε |
Αλλάξτε το ενεργό βιβλίο εργασίας χρησιμοποιώντας τον αριθμό παραγγελίας φύλλου εργασίας (1 είναι το πρώτο φύλλο εργασίας σε ένα βιβλίο εργασίας)
1 | Τετράδια εργασίας (1). Ενεργοποιήστε |
Κάντε αυτό το βιβλίο εργασίας ενεργό
Κάντε αυτό το βιβλίο εργασίας (όπου είναι αποθηκευμένος ο τρέχων κώδικας) το ActiveWorkbook:
1 | ThisWorkbook.Activate |
Ορίστε το ActiveWorkbook σε μια μεταβλητή
Αντιστοιχίστε το ActiveWorkbook σε μια μεταβλητή αντικειμένου βιβλίου εργασίας:
12 | Dim wb Ως βιβλίο εργασίαςΡύθμιση wb = ActiveWorkbook |
Κλείστε και αποθηκεύστε το ενεργό βιβλίο εργασίας
Κλείνει και αποθηκεύει το βιβλίο ActiveWork:
1 | ActiveWorkbook.Close SaveChanges: = True |
Κλείστε το ενεργό βιβλίο εργασίας χωρίς αποθήκευση
Κλείνει το ActiveWorkbook χωρίς αποθήκευση:
1 | ActiveWorkbook.Close SaveChanges: = Λάθος |
ActiveWorkbook - Αποθήκευση ως
Εκτελεί αποθήκευση από το ενεργό βιβλίο εργασίας.
123456789 | Sub SaveAsActiveWorkbook ()Αμυδρό αποτέλεσμα ως παραλλαγήαποτέλεσμα = Application.GetSaveAsFilename (InitialFileName: = "", _FileFilter: = "Βιβλίο εργασίας με ενεργοποίηση μακροεντολής Excel ( *.xlsm), *.xlsm, βιβλίο εργασίας Excel ( *.xlsx), *.xlsx")Αν αποτέλεσμα = Λάθος Τότε ΕπιστροφήActiveWorkbook.SaveAs αποτέλεσμαΤέλος υπο |