VBA FileDialog | Πώς να ανοίξετε το FilesDialog Box χρησιμοποιώντας τον κώδικα VBA;

Excel VBA FileDialog

Στο VBA fieldialog είναι μια ιδιότητα που χρησιμοποιείται για την αναπαράσταση διαφορετικών περιπτώσεων, στο fileialog υπάρχουν τέσσερις διαφορετικοί τύποι σταθερών που είναι γνωστοί ως msofiledialogfilepicker που χρησιμοποιείται για την επιλογή ενός αρχείου από μια δεδομένη διαδρομή. Το δεύτερο είναι msofiledialogfolderpicker ένα φάκελο και το τρίτο είναι msofiledialog ανοιχτό για να ανοίξει ένα αρχείο και το τελευταίο είναι msofiledialogsaveas που χρησιμοποιείται για την αποθήκευση ενός αρχείου ως νέο αρχείο.

Υπάρχουν συγκεκριμένες περιστάσεις όπου θέλουμε τα δεδομένα από οποιοδήποτε άλλο αρχείο ή οποιοδήποτε άλλο φύλλο εργασίας και καθώς το VBA χρησιμοποιείται για την αυτοματοποίηση της εργασίας μας, μπορούμε να ανοίξουμε διαφορετικά άλλα αρχεία χρησιμοποιώντας το VBA και αυτό γίνεται χρησιμοποιώντας το Filedialog, το δροσερό μέρος της χρήσης αυτού Η μέθοδος είναι ότι δεν χρειάζεται να παρέχουμε τη διαδρομή στον κώδικα, αλλά ζητάμε από τον χρήστη να περιηγηθεί στο αρχείο.

Ως μέρος του έργου VBA, ίσως χρειαστεί να ανοίξουμε άλλα βιβλία εργασίας και να εκτελέσουμε κάποια εργασία μαζί τους. Σε ένα από τα προηγούμενα άρθρα μας "VBA Workbook.Open" έχουμε δείξει πώς να ανοίγουμε αρχεία με καθορισμένη διαδρομή και συγκεκριμένο αρχείο. Εκεί, χρειαζόμασταν να παρέχουμε τη διαδρομή του φακέλου και το όνομα του αρχείου με την επέκτασή του. Τι γίνεται όμως κάθε φορά που ένας χρήστης πρέπει να επιλέγει τα διαφορετικά αρχεία από τους διαφορετικούς φακέλους. Εδώ εμφανίζεται η επιλογή "FileDialog".

Πώς λειτουργεί το VBA FileDialog Option;

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

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA FileDialog Excel εδώ - Πρότυπο VBA FileDialog Excel

Το "FileDialog" είναι ένα αντικείμενο στο VBA. Για να χρησιμοποιήσουμε αυτήν την επιλογή πρώτα πρέπει να ορίσουμε τη μεταβλητή ως FileDialog.

Μόλις η μεταβλητή δηλωθεί ως "FileDialog" είναι μια μεταβλητή αντικειμένου. Για να ξεκινήσετε να το χρησιμοποιείτε πρέπει να ρυθμίσουμε το αντικείμενο χρησιμοποιώντας το Application.FileDialog.

Όπως μπορούμε να δούμε στην παραπάνω εικόνα, το FileDialog έχει τέσσερις επιλογές μαζί του.

  • msoFileDialogFilePicker: Αυτή η επιλογή ανοίγει το παράθυρο επιλογής αρχείων μπροστά από τον χρήστη για να επιλέξει το επιθυμητό αρχείο σύμφωνα με την επιθυμία του.
  • msoFileDialogFolderPicker: Αυτή η επιλογή ανοίγει το πλαίσιο διαλόγου ή το παράθυρο μπροστά από τον χρήστη για να επιλέξετε το φάκελο.
  • msoFileDialogOpen: Αυτό θα επιτρέψει στο χρήστη να ανοίξει το επιλεγμένο αρχείο από το φάκελο.
  • msoFileDialogSaveAs: Αυτό θα επιτρέψει στον χρήστη να αποθηκεύσει το αρχείο ως διαφορετικό αντίγραφο.

Από τώρα, έχω επιλέξει την επιλογή msoFileDialogFilePicker.

Τώρα πρέπει να σχεδιάσουμε το παράθυρο διαλόγου που εμφανίζεται μπροστά μας.

Χρησιμοποιώντας το Statement μπορούμε να σχεδιάσουμε το παράθυρο διαλόγου.

Στο εσωτερικό με τη δήλωση βάλτε μια κουκκίδα για να δείτε τη λίστα IntelliSense των ιδιοτήτων και των μεθόδων του FileDialog.

Για να δείτε μόνο τα αρχεία excel όταν ανοίξει το παράθυρο διαλόγου αρχείων, πρέπει πρώτα να καταργήσουμε οποιοδήποτε από τα φίλτρα που εφαρμόστηκαν.

Τώρα πρέπει να εφαρμόσουμε ένα νέο φίλτρο ως "Excel Files" με επέκταση μπαλαντέρ των αρχείων excel.

Τώρα ας αλλάξουμε τον τίτλο του διαλόγου αρχείου.

Μπορούμε να επιτρέψουμε στον χρήστη να επιλέξει μόνο ένα αρχείο τη φορά ή μπορούμε επίσης να του επιτρέψουμε να επιλέξουν πολλά αρχεία. Για αυτό, πρέπει να χρησιμοποιήσουμε το "Allow Multi-Select".

Έχουμε δύο επιλογές εδώ. Εάν επιλεγεί TRUE, θα επιτρέψει στον χρήστη να επιλέξει πολλά αρχεία εάν είναι το FALSE ο χρήστης μπορεί να επιλέξει μόνο ένα αρχείο κάθε φορά.

Ένα άλλο πράγμα που μπορούμε να σχεδιάσουμε με το FileDialog είναι ότι μπορούμε πραγματικά να επιμείνουμε σε αυτό που πρέπει να είναι ο προεπιλεγμένος φάκελος όταν εμφανιστεί το παράθυρο διαλόγου αρχείων. Για αυτό χρησιμοποιήστε το αρχικό όνομα αρχείου.

Για αυτό, πρέπει να αναφέρουμε τον προεπιλεγμένο φάκελο για να ανοίξει η διαδρομή διεύθυνσης.

Τώρα τέλος πρέπει να εφαρμόσουμε τη μέθοδο "Εμφάνιση" για να δούμε το παράθυρο διαλόγου του αρχείου.

Κώδικας:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Επιλέξτε το αρχείο Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Show End with End Sub

Τώρα εκτελέστε τον κωδικό VBA για να δείτε το αποτέλεσμα.

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

Τώρα μπορούμε να επιλέξουμε οποιονδήποτε υποφάκελο και να επιλέξουμε τα αρχεία excel.

Κοιτάξτε την παραπάνω εικόνα επειδή έχουμε εφαρμόσει την παράμετρο φίλτρου ως "Excel Files" μόνο.

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

Τώρα μέσα με τη δήλωση επιλέξτε "SelectedItems". Αντιστοιχίστε τη διαδρομή φακέλου επιλεγμένων στοιχείων στη νέα μεταβλητή.

Τώρα επιτέλους δείξτε την επιλεγμένη διαδρομή φακέλου στο πλαίσιο μηνυμάτων VBA.

Τώρα θα τρέξω το πρόγραμμα για να δω το πλαίσιο διαλόγου.

Τώρα έχω επιλέξει το Όνομα αρχείου ως «1. Charts.xlsx "στον υποφάκελο" Χάρτες ". Εάν κάνω κλικ στο OK, μπορούμε να δούμε την πλήρη διαδρομή του φακέλου στο πλαίσιο μηνύματος.

Έτσι, έτσι, μπορούμε να χρησιμοποιήσουμε την επιλογή FileDialog για να επιλέξουμε τα αρχεία από το φάκελο στο Excel. Χρησιμοποιήστε τον παρακάτω κωδικό για να επιλέξετε τα αρχεία.

Κώδικας:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress as String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Επιλογή. Αρχείο Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Show FileAddress = .SelectedItems (1) End with MsgBox FileAddress End Sub

$config[zx-auto] not found$config[zx-overlay] not found