VBA ThisWorkbook | Πώς να χρησιμοποιήσετε αυτήν την ιδιότητα Workbook στο Excel VBA;

Εγχειρίδιο Excel VBA ThisWorkbook

VBA ThisWorkbook σημαίνει το βιβλίο εργασίας στο οποίο γράφουμε τον κωδικό excel. Για παράδειγμα, εάν εργάζεστε στο βιβλίο εργασίας με την ονομασία "Sales 2019.xlsx", συνήθως αναφερόμαστε στο βιβλίο εργασίας σαν αυτό.

Βιβλία εργασίας ("Πωλήσεις 2019.xlsx"). Ενεργοποίηση

Ο κωδικός θα ενεργοποιήσει το βιβλίο εργασίας με την ονομασία "Sales 2019.xlsx".

Αντί να γράφουμε έτσι, μπορούμε απλώς να γράψουμε τον κώδικα VBA παρακάτω.

Αυτό το βιβλίο εργασίας. Ενεργοποιήστε "

Εδώ το ThisWorkbook αναφέρεται στο βιβλίο εργασίας όπου γράφουμε τον κώδικα. Παραπέμποντας σε αυτήν τη λέξη μπορούμε να εκτελέσουμε όλες τις εργασίες στο τρέχον βιβλίο εργασίας και να αποφύγουμε τον χρονοβόρο κώδικα με ένα πλήρες όνομα βιβλίου εργασίας.

Είμαι βέβαιος ότι πρέπει επίσης να έχετε δει τη λέξη "Active Workbook" όταν αναφέρεστε στον άλλον κωδικό. Αυτή είναι επίσης μια από τις συχνά χρησιμοποιούμενες λέξεις στην κωδικοποίηση. Θα δούμε ποιες είναι οι βασικές διαφορές μεταξύ αυτών των δύο λέξεων.

Εργασία με το ThisWorkbook στο Excel VBA

Η λέξη αναφοράς "ThisWorkbook" είναι πιο αξιόπιστη από τον προσδιοριστή αντικειμένου Workbooks. Μία από τις ανθρώπινες τάσεις είναι να πληκτρολογείτε λανθασμένα το όνομα του βιβλίου εργασίας που έχει ως αποτέλεσμα τη μετάδοση ενός μηνύματος σφάλματος.

Ένας ακόμη σημαντικός λόγος για τον οποίο το VBA ThisWorkbook είναι πιο αξιόπιστο, γιατί σε περίπτωση που αλλάξουμε το όνομα του βιβλίου εργασίας, πρέπει να αλλάξουμε τον κωδικό επειδή έχουμε χρησιμοποιήσει τη λέξη "ThisWorkbook".

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

Μπορείτε να κατεβάσετε αυτό το Πρότυπο VBA ThisWorkbook Excel εδώ - Πρότυπο VBA ThisWorkbook Excel

Παράδειγμα # 1

Θα δούμε μερικά από τα παραδείγματα όπου μπορούμε να χρησιμοποιήσουμε τη λέξη ThisWorkbook στο excel VBA. Ο ακόλουθος κωδικός θα εκτυπώσει το όνομα του βιβλίου εργασίας.

Κώδικας:

 Υπο TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Όταν εκτελείτε τον κωδικό χειροκίνητα ή χρησιμοποιώντας το πλήκτρο F5 τότε, ο παραπάνω κώδικας θα εμφανίσει το όνομα του βιβλίου εργασίας στο πλαίσιο μηνύματος στο VBA.

Παράδειγμα # 2

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

Κώδικας:

 Υπο TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Ενεργοποιήστε αυτό το Workbook. Αποθηκεύστε αυτό το Workbook. Κλείστε αυτό το Workbook. Save Subs End Sub 

Ο παραπάνω κώδικας έχει χρησιμοποιήσει το "ThisWorkbook" σε κάθε γραμμή του κώδικα. Πόσο δύσκολο είναι να πληκτρολογείς τη λέξη κάθε φορά. Έτσι, μπορούμε να το ελαχιστοποιήσουμε χρησιμοποιώντας μεταβλητές.

Τώρα, δείτε τον παρακάτω κώδικα με τη μεταβλητή.

Κώδικας:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Sheet1"). Ενεργοποίηση Wb.Save Wb.Close Wb.SaveAs End Sub 

Φαίνεται όμορφη, έτσι δεν είναι;

Επιτρέψτε μου να σας εξηγήσω τον κωδικό.

Πρώτα έχω δηλώσει τη μεταβλητή ως αντικείμενο του βιβλίου εργασίας

Dim Wb ως βιβλίο εργασίας

Δεδομένου ότι αυτή είναι μια μεταβλητή αντικειμένου, πρέπει να ορίσουμε την αναφορά στο συγκεκριμένο βιβλίο εργασίας. Έτσι έχω χρησιμοποιήσει την αναφορά "ThisWorkbook".

Ορισμός Wb = ThisWorkbook

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

Ενεργό βιβλίο εργασίας εναντίον ThisWorkbook στο Excel VBA

Όπως είπα στην αρχή του άρθρου πολλοί κωδικοποιητές χρησιμοποιούν συχνά τις λέξεις Active Workbook & ThisWorkbook στην κωδικοποίηση VBA τους. Ως αναγνώστης ή νέος μαθητής, δεν είναι εύκολο να κατανοήσουμε αυτά τα δύο. Λοιπόν, επιτρέψτε μου να σας εξηγήσω μερικές από τις διαφορές.

Διαφορά # 1: Σημασία

  • Ενεργό βιβλίο εργασίας: Το ενεργό βιβλίο εργασίας δεν είναι απαραίτητα το βιβλίο εργασίας όπου γράφουμε τον κώδικα αυτή τη στιγμή. Εάν έχετε πολλά ανοιχτά βιβλία εργασίας και οποιοδήποτε από τα βιβλία εργασίας είναι ορατά στην οθόνη σας, θεωρείται ενεργό βιβλίο εργασίας .
  • ThisWorkbook: ThisWorkbook είναι πάντα το βιβλίο εργασίας όπου γράφουμε τον κώδικα αυτή τη στιγμή.

Διαφορά 2: Πιθανότητες σφάλματος

  • Ενεργό Βιβλίο Εργασίας: Η χρήση του Ενεργού στην κωδικοποίηση μπορεί να οδηγήσει σε πολλά σφάλματα και σύγχυση γιατί ποτέ δεν ξέρουμε ποιο βιβλίο εργασίας είναι ενεργό, εκτός εάν αναφέρουμε συγκεκριμένα το βιβλίο εργασίας για ενεργοποίηση πριν χρησιμοποιήσετε τη λέξη Ενεργό βιβλίο εργασίας
  • ThisWorkbook: ThisWorkbook δεν μπορεί να πάει στραβά επειδή δεν έχει σημασία ποιο βιβλίο εργασίας είναι ενεργό, παίρνει πάντα την αναφορά του βιβλίου εργασίας όπου γράφουμε τον κώδικα.