Σε αυτό το σεμινάριο, θα μάθετε πώς να χρησιμοποιείτε το VBA για να ανοίγετε και να κλείνετε το βιβλίο εργασίας του Excel με διάφορους τρόπους.
Το VBA σάς επιτρέπει να ανοίγετε ή να κλείνετε αρχεία χρησιμοποιώντας τις τυπικές μεθόδους .Ανοιξε και .Κλείσε.
Εάν θέλετε να μάθετε πώς να ελέγχετε εάν υπάρχει αρχείο πριν επιχειρήσετε να ανοίξετε το αρχείο, μπορείτε να κάνετε κλικ σε αυτόν τον σύνδεσμο: Το αρχείο VBA υπάρχει
Ανοίξτε ένα βιβλίο εργασίας στο VBA
Άνοιγμα βιβλίου εργασίας από μονοπάτι
Εάν γνωρίζετε ποιο αρχείο θέλετε να ανοίξετε, μπορείτε να καθορίσετε το πλήρες όνομα της διαδρομής του στη συνάρτηση. Εδώ είναι ο κωδικός:
1 | Βιβλία εργασίας. Άνοιγμα "C: \ VBA Folder \ Sample file 1.xlsx" |
Αυτή η γραμμή του κώδικα ανοίγει το αρχείο "Δείγμα αρχείου 1" από τον "Φάκελο VBA".
Άνοιγμα βιβλίου εργασίας - ActiveWorkbook
Όταν ανοίγετε ένα βιβλίο εργασίας, αυτόματα γίνεται το ActiveWorkbook. Μπορείτε να αναφέρετε το πρόσφατα ανοιχτό βιβλίο εργασίας ως εξής:
1 | ActiveWorkbook.Save |
Όταν αναφέρετε ένα φύλλο ή μια περιοχή και παραλείψετε το όνομα του βιβλίου εργασίας, η VBA θα υποθέσει ότι αναφέρεστε στο ActiveWorkbook:
1 | Φύλλα ("Φύλλο1"). Όνομα = "Εισαγωγή" |
Ανοίξτε το βιβλίο εργασίας και ορίστε μια μεταβλητή
Μπορείτε επίσης να ανοίξετε ένα βιβλίο εργασίας και να το εκχωρήσετε απευθείας σε μια μεταβλητή αντικειμένου. Αυτή η διαδικασία θα ανοίξει ένα βιβλίο εργασίας στο wb μεταβλητή και, στη συνέχεια, αποθηκεύστε το βιβλίο εργασίας.
123456 | Sub OpenWorkbookToVariable ()Dim wb Ως βιβλίο εργασίαςΟρίστε wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx")wb. ΑποθήκευσηΤέλος υπο |
Η ανάθεση βιβλίων εργασίας σε μεταβλητές όταν ανοίγουν είναι ο καλύτερος τρόπος για να παρακολουθείτε τα βιβλία εργασίας σας
Βιβλίο εργασίας Άνοιγμα διαλόγου αρχείων
Μπορείτε επίσης να ενεργοποιήσετε το πλαίσιο εργασίας Άνοιγμα αρχείου διαλόγου βιβλίου εργασίας. Αυτό επιτρέπει στον χρήστη να μεταβεί σε ένα αρχείο και να το ανοίξει:
12345678 | Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Τετράδια εργασίας. Άνοιγμα (strFile)Τέλος υπο |
Όπως μπορείτε να δείτε στην Εικόνα 1, με αυτήν την προσέγγιση οι χρήστες μπορούν να επιλέξουν ποιο αρχείο θα ανοίξουν. Το πλαίσιο διαλόγου Ανοιχτό αρχείο μπορεί να προσαρμοστεί σε μεγάλο βαθμό. Μπορείτε να κάνετε προεπιλογή σε έναν συγκεκριμένο φάκελο, να επιλέξετε ποιοι τύποι αρχείων είναι ορατά (π.χ.… xlsx μόνο) και άλλα. Διαβάστε το σεμινάριό μας στο Open File Dialog Box για λεπτομερή παραδείγματα.
Ανοίξτε το νέο βιβλίο εργασίας
Αυτή η γραμμή κώδικα θα ανοίξει ένα νέο βιβλίο εργασίας:
1 | Τετράδια εργασίας. Προσθήκη |
Ανοίξτε το νέο βιβλίο εργασίας σε μεταβλητή
Αυτή η διαδικασία θα ανοίξει ένα νέο βιβλίο εργασίας, αναθέτοντάς το σε μεταβλητή wb:
1234 | Sub OpenNewWorkbook ()Dim wb Ως βιβλίο εργασίαςΡύθμιση wb = Τετράδια εργασίας. ΠροσθήκηΤέλος υπο |
Ανοίξτε τη σύνταξη βιβλίου εργασίας
Όταν χρησιμοποιείτε βιβλία εργασίας. Ανοίξτε μπορεί να παρατηρήσετε ότι υπάρχουν πολλές διαθέσιμες επιλογές κατά το άνοιγμα του βιβλίου εργασίας:
Το όνομα αρχείου απαιτείται. Όλα τα άλλα επιχειρήματα είναι προαιρετικά - και πιθανότατα δεν θα χρειαστεί να γνωρίζετε τα περισσότερα από τα άλλα επιχειρήματα. Εδώ είναι τα δύο πιο συνηθισμένα:
Άνοιγμα βιβλίου εργασίας μόνο για ανάγνωση
Όταν ανοίξει το βιβλίο εργασίας μόνο για ανάγνωση, δεν μπορείτε να αποθηκεύσετε στο αρχικό αρχείο. Αυτό αποτρέπει την επεξεργασία του αρχείου από τον χρήστη.
1 | Τετράδια εργασίας. Ανοίξτε το "C: \ VBA Folder \ Sample file 1.xlsx",, True |
Ανοίξτε το βιβλίο εργασίας που προστατεύεται με κωδικό πρόσβασης
Ένα βιβλίο εργασίας μπορεί να προστατεύεται με κωδικό πρόσβασης. Χρησιμοποιήστε αυτόν τον κωδικό για να ανοίξετε το βιβλίο εργασίας που προστατεύεται με κωδικό πρόσβασης:
1 | Βιβλία εργασίας. Άνοιγμα "C: \ VBA Folder \ Sample file 1.xlsx",,, "password" |
Άνοιγμα σημειώσεων σύνταξης βιβλίου εργασίας
Παρατηρήστε ότι στην παραπάνω εικόνα, συμπεριλάβαμε μια παρένθεση "() για να δείξετε τη σύνταξη. Εάν χρησιμοποιείτε παρένθεση όταν εργάζεστε με Workbooks.Open, πρέπει να αντιστοιχίσετε το βιβλίο εργασίας σε μια μεταβλητή:
1234 | Sub OpenWB ()Dim wb Ως βιβλίο εργασίαςΟρισμός wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)Τέλος υπο |
Κλείστε ένα βιβλίο εργασίας στο VBA
Κλείσιμο συγκεκριμένου βιβλίου εργασίας
Ομοίως με το άνοιγμα ενός βιβλίου εργασίας, υπάρχουν διάφοροι τρόποι για να κλείσετε ένα αρχείο. Εάν γνωρίζετε ποιο αρχείο θέλετε να κλείσετε, μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:
1 | Βιβλία εργασίας. Κλείσιμο ("C: \ VBA Folder \ Sample file 1.xlsx") |
Αυτή η γραμμή κώδικα κλείνει το αρχείο "Δείγμα αρχείου 1" εάν ανοίξει. Εάν όχι, θα επιστρέψει ένα σφάλμα, οπότε θα πρέπει να φροντίσετε για τον χειρισμό σφαλμάτων.
Κλείσιμο ενεργού βιβλίου εργασίας
Εάν θέλετε να κλείσετε το Βιβλίο εργασίας που είναι ενεργό αυτήν τη στιγμή, αυτή η γραμμή κώδικα θα σας δώσει τη δυνατότητα να το κάνετε αυτό:
1 | ActiveWorkbook. Κλείσιμο |
Κλείσιμο όλων των ανοιχτών βιβλίων εργασίας
Για να κλείσετε όλα τα ανοιχτά βιβλία εργασίας, μπορείτε απλά να χρησιμοποιήσετε αυτόν τον κωδικό:
1 | Τετράδια εργασίας. Κλείσιμο |
Κλείστε το πρώτο βιβλίο που άνοιξε το βιβλίο εργασίας
Αυτό θα κλείσει το πρώτο βιβλίο εργασίας που έχει ανοίξει/δημιουργηθεί:
1 | Τετράδια εργασίας (1). Κλείσιμο |
Αντικαταστήστε το 1 με το 2 για να κλείσετε το δεύτερο ανοιχτό / δημιουργημένο βιβλίο εργασίας και ούτω καθεξής.
Κλείσιμο χωρίς αποθήκευση
Αυτό θα κλείσει ένα βιβλίο εργασίας χωρίς αποθήκευση και χωρίς εμφάνιση της προτροπής αποθήκευσης:
1 | ActiveWorkbook.Close savechanchanges: = False |
Αποθήκευση και κλείσιμο χωρίς προτροπή
Ομοίως, αυτό θα αποθηκεύσει και θα κλείσει ένα βιβλίο εργασίας χωρίς να εμφανιστεί το μήνυμα αποθήκευσης:
1 | ActiveWorkbook.Close savechanchanges: = True |
Σημείωση: Υπάρχουν αρκετοί άλλοι τρόποι για να υποδείξετε αν θα αποθηκευτεί ή όχι ένα βιβλίο εργασίας και επίσης εάν θα εμφανίζονται προτροπές ή όχι. Αυτό συζητείται λεπτομερέστερα εδώ.
Άλλα τετράδια εργασίας Παραδείγματα ανοιχτά
Ανοίξτε πολλά νέα βιβλία εργασίας
Αυτή η διαδικασία θα ανοίξει πολλά νέα βιβλία εργασίας, αναθέτοντας τα νέα βιβλία εργασίας σε έναν πίνακα:
12345678 | Υπο OpenMultipleNewWorkbooks ()Dim arrWb (3) Ως τετράδιο εργασίαςDim i As IntegerΓια i = 1 έως 3Ορισμός arrWb (i) = Βιβλία εργασίας. ΠροσθήκηΕπόμενο iΤέλος υπο |
Ανοίξτε όλα τα βιβλία εργασίας του Excel σε ένα φάκελο
Αυτή η διαδικασία θα ανοίξει όλα τα βιβλία εργασίας του Excel σε ένα φάκελο, χρησιμοποιώντας τον επιλογέα Άνοιγμα διαλόγου αρχείων.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Ως βιβλίο εργασίαςDim dlgFD ως FileDialogDim strFolder As StringDim strFileName As StringΟρισμός dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Εάν dlgFD.Show = -1 ΤότεstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do while strFileName ""Ορισμός wb = Workbooks.Open (strFolder & strFileName)strFileName = ΔιεύθυνσηΒρόχοςΤέλος εανΤέλος υπο |
Ελέγξτε αν είναι ανοιχτό ένα βιβλίο εργασίας
Αυτή η διαδικασία θα ελέγξει εάν είναι ανοιχτό ένα βιβλίο εργασίας:
1234567891011 | Sub TestByWorkbookName ()Dim wb Ως βιβλίο εργασίαςΓια κάθε wb Σε βιβλία εργασίαςΕάν wb.Name = "New Microsoft Excel Worksheet.xls" ΤότεMsgBox "Το βρήκα"Κλείστε τον κωδικό κλήσης του Sub εδώ, θα βγούμε προς το παρόνΤέλος εανΕπόμενοΤέλος υπο |
Workbook_Open Event
Τα συμβάντα VBA είναι "ενεργοποιητές" που λένε στη VBA να εκτελέσει συγκεκριμένο κώδικα. Μπορείτε να ρυθμίσετε εκδηλώσεις βιβλίου εργασίας για το άνοιγμα, το κλείσιμο, πριν από την αποθήκευση, μετά την αποθήκευση και άλλα.
Διαβάστε το σεμινάριο Workbook_Open Event για να μάθετε περισσότερα σχετικά με την αυτόματη εκτέλεση μακροεντολών όταν ανοίγετε ένα βιβλίο εργασίας.