Γνωρίζουμε ήδη πώς να ανοίξουμε ή να αποθηκεύσουμε ένα αρχείο Excel σε VBA. Χρησιμοποιούμε απλώς τη μέθοδο Open και SaveAs του αντικειμένου βιβλίου εργασίας. Αλλά αυτό απαιτεί σκληρή κωδικοποίηση της διαδρομής του αρχείου. Τις περισσότερες φορές, θα θέλατε ο τελικός χρήστης να επιλέξει ένα αρχείο χρησιμοποιώντας GUI ή να πει Αρχείο Άνοιγμα ή Αποθήκευση ως παράθυρο διαλόγου που επιτρέπει στον χρήστη να επιλέξει τη θέση του αρχείου οπτικά και εύκολα.
Σε αυτό το άρθρο, καλύπτουμε τον κώδικα που χρησιμοποιείται για την εμφάνιση ανοιχτού παραθύρου διαλόγου βιβλίου εργασίας και αποθήκευση ως παράθυρο διαλόγου.
Έχω επισυνάψει ένα βιβλίο εργασίας που μπορείτε να κατεβάσετε. Το βιβλίο εργασίας που επισυνάπτεται σε αυτό το άρθρο περιέχει τρεις μακροεντολές
Κωδικός VBA για να ανοίξετε το αρχείο χρησιμοποιώντας το Open File Dialog
Σε αυτόν τον κώδικα, θα χρησιμοποιήσουμε τη μέθοδο εφαρμογής GetOpenFilename. Η σύνταξη της μεθόδου GetOpenFilename είναι:
Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
[FileFilter]: Μπορείτε να ορίσετε την εμφάνιση μόνο ενός είδους αρχείου στον επιλεγμένο φάκελο. Εάν γράφετε "Αρχεία Excel, *.xlsx, *.xls, *.xlsm" κλπ. Τότε μόνο τα αρχεία Excel θα εμφανίζονται από το φάκελο στο παράθυρο διαλόγου "Άνοιγμα αρχείων".
[FilterIndex]:Είναι ο αριθμός των φίλτρων αρχείων που θέλετε να χρησιμοποιήσετε.
[Τίτλος]: Ο τίτλος του παραθύρου διαλόγου.
[ButtonText]:Για τον καθορισμό του κειμένου του κουμπιού. ΟΧΙ σημαντικο.
[MultiSelect]: Είναι μια μεταβλητή Boolean. Εάν το ορίσετε True ή 1, θα μπορείτε να επιλέξετε περισσότερα από ένα αρχεία. Εάν το ορίσετε false, μπορείτε να επιλέξετε μόνο ένα αρχείο.
Αρκετά με τη θεωρία. Ας κάνουμε μερικά ξόρκια.
Κωδικός VBA Για να ανοίξετε ένα αρχείο κάθε φορά
Option Explicit Sub OpenOneFile () Dim FileName As Variant 'Εμφάνιση του παραθύρου διαλόγου ανοιχτού αρχείου FileName = Application.GetOpenFilename ("Excel-files,*. Xls", _ 1, "Select One File To Open",, False)' User didn 't select a file If TypeName (FileName) = "Boolean" Then Exit Sub "Open the workbook workbooks.Open NameName End End
Πώς λειτουργεί;
Όταν εκτελείτε αυτό το τμήμα κώδικα, η μέθοδος GetOpenFilename για το αντικείμενο Εφαρμογή θα ανοίξει ένα πλαίσιο Άνοιγμα διαλόγου αρχείου. Ο τίτλος του παραθύρου διαλόγου θα είναι "Επιλέξτε ένα αρχείο για άνοιγμα" όπως ορίσαμε στον κώδικα. Εάν επιλέξετε ένα αρχείο, τότε θα λειτουργήσει το Worbook.Open code και θα ανοίξει το αρχείο. Εάν δεν επιλέξετε ένα αρχείο, το δευτερεύον τμήμα θα εξέλθει χωρίς να εκτελέσετε το βιβλίο εργασίας. Ανοίξτε τον κώδικα.
Κωδικός VBA Για να ανοίξετε ένα ή περισσότερα αρχεία ταυτόχρονα
Αυτό το τμήμα κώδικα θα ανοίξει το παράθυρο διαλόγου άνοιγμα αρχείου, αλλά θα μπορείτε να επιλέξετε περισσότερα από ένα αρχεία ταυτόχρονα.
Sub OpenMultipleFiles () Dim NameName As Variant, f As Integer 'Εμφάνιση του παραθύρου διαλόγου ανοιχτού αρχείου FileName = Application.GetOpenFilename ("Excel-files,*. Xlsx", _ 1, "Select One or More Files To Open",, True ) 'Ο χρήστης δεν επέλεξε ένα αρχείο Εάν TypeName (FileName) = "Boolean" then Exit Sub "Άνοιξε όλα τα βιβλία εργασίας που επέλεξε ο χρήστης Για f = 1 To UBound (FileName) Workbooks.Open NameName (f) Next f End Sub
Σημειώστε ότι εδώ έχουμε ορίσει τη μεταβλητή πολλαπλής επιλογής σε True. Αυτό θα επιτρέψει την πολλαπλή επιλογή του αρχείου.
Κωδικός VBA για να ανοίξετε το πλαίσιο αποθήκευσης ως διάλογο
Για να ανοίξετε ένα παράθυρο διαλόγου Αποθήκευση ως, θα χρησιμοποιήσουμε τη μέθοδο GetSaveAsFilename του αντικειμένου Εφαρμογή. Η σύνταξη της μεθόδου είναι:
Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText])
[InitialFileName]:Το αρχικό όνομα αρχείου. Εάν δεν μετονομάσετε το αρχείο ενώ το αποθηκεύετε, το αρχείο σας θα αποθηκευτεί με αυτό το όνομα.
[FileFilter]: Μπορείτε να ορίσετε την εμφάνιση μόνο ενός είδους αρχείου στον επιλεγμένο φάκελο. Εάν γράφετε "Αρχεία Excel, *.xlsx, *.xls, *.xlsm" κλπ. Τότε μόνο τα αρχεία Excel θα εμφανίζονται από το φάκελο στο παράθυρο διαλόγου "Άνοιγμα αρχείων".
[FilterIndex]: Ο δείκτης φίλτρου του αρχείου.
[Τίτλος]:Ο τίτλος του πλαισίου διαλόγου.
[ButtonText]:Αυτό χρησιμοποιείται στο σύστημα Mac για να αλλάξετε το όνομα του κουμπιού.
Ακολουθήστε παρακάτω για τον κωδικό
Sub SaveFile () Dim FileName As Variant 'Εμφάνιση του παραθύρου διαλόγου saveas FileName = Application.GetSaveAsFilename ("MyFileName.xls", _ "Excel files,*. Xls", 1, "Select your folder and name file") "User didn" t αποθήκευση αρχείου If TypeName (FileName) = "Boolean" then Exit Sub "Save the workbook ActiveWorkbook.SaveAs FileName End Sub
Το SaveFile Macro χρησιμοποιεί τη μέθοδο GetSaveAsFilename του Application object για να ανοίξει το παράθυρο διαλόγου save as, εκχωρώντας το όνομα του αρχείου και επιλέγοντας τη θέση αποθήκευσης του βιβλίου εργασίας.
Λοιπόν, ναι, έτσι μπορείτε να χρησιμοποιήσετε το παράθυρο διαλόγου για να ανοίξετε και να αποθηκεύσετε αρχεία χρησιμοποιώντας το VBA. Ελπίζω να ήταν χρήσιμο. Εάν έχετε αμφιβολίες σχετικά με αυτό το άρθρο ή οποιοδήποτε άλλο θέμα VBA, ρωτήστε στην παρακάτω ενότητα σχολίων.
Χρησιμοποιήστε ένα κλειστό βιβλίο εργασίας ως βάση δεδομένων (DAO) χρησιμοποιώντας VBA στο Microsoft Excel | Για να χρησιμοποιήσετε ένα κλειστό βιβλίο εργασίας ως βάση δεδομένων με σύνδεση DAO χρησιμοποιήστε αυτό το απόσπασμα VBA στο Excel.
Χρησιμοποιήστε ένα κλειστό βιβλίο εργασίας ως βάση δεδομένων (ADO) χρησιμοποιώντας VBA στο Microsoft Excel | Για να χρησιμοποιήσετε ένα κλειστό βιβλίο εργασίας ως βάση δεδομένων με σύνδεση ADO χρησιμοποιήστε αυτό το απόσπασμα VBA στο Excel.
Ξεκινώντας με το Excel VBA UserForms | Για την εισαγωγή δεδομένων στη βάση δεδομένων, χρησιμοποιούμε φόρμες. Τα Excel UserForms είναι χρήσιμα για τη λήψη πληροφοριών από τον χρήστη. Δείτε πώς πρέπει να ξεκινήσετε με τις μορφές χρηστών VBA.
Αλλάξτε την τιμή/το περιεχόμενο πολλών στοιχείων ελέγχου UserForm χρησιμοποιώντας το VBA στο Excel | Για να αλλάξετε το περιεχόμενο των στοιχείων ελέγχου μορφής χρήστη, χρησιμοποιήστε αυτό το απλό απόσπασμα VBA.
Αποτρέψτε το κλείσιμο μιας μορφής χρήστη όταν ο χρήστης κάνει κλικ στο κουμπί x χρησιμοποιώντας VBA στο Excel | Για να αποτρέψουμε το κλείσιμο της φόρμας χρήστη όταν ο χρήστης κάνει κλικ στο κουμπί x της φόρμας, χρησιμοποιούμε το συμβάν UserForm_QueryClose.
Δημοφιλή άρθρα:
50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.
Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.
COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.
Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες