VBA ActiveWorkbook εναντίον ThisWorkbook

Αυτό το σεμινάριο θα συζητήσει τη διαφορά μεταξύ του 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 αποτέλεσμαΤέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave