Φάκελος περιήγησης για επιλογή φακέλου χρησιμοποιώντας VBA στο Microsoft Excel

Anonim

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

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

Λογική εξήγηση

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

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

Ακολουθήστε παρακάτω για τον κωδικό

 Επιλογή Ρητή «Δήλωση τύπου δεδομένων χρήστη» Χρησιμοποιείται από τη λειτουργία Συνάρτηση SHGetPathFromIDList Lib "shell32.dll" _ asευδώνυμο "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ asευδώνυμο "SHBrowseForFonFonFolderForFo (Msg As String) As String 'Επιστρέφει το όνομα του φακέλου που έχει επιλέξει ο χρήστης Dim bInfo As BROWSEINFO, path As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Τύπος καταλόγου για επιστροφή bInfo .ulFlags = & H1 'Εμφάνιση του διαλόγου X = SHBrowseForFolder (bInfo)' Ανάλυση της διαδρομής αποτελεσμάτων = Χώρος $ (512) 'Λειτουργία κλήσης API r = SHGetPathFromIDList (ByVal X, διαδρομή ByVal)' Κωδικός για διαγραφή επιπλέον κενών στο τέλος του ονόματος φακέλου επιστροφή Εάν r Στη συνέχεια pos = InStr (διαδρομή, Chr (0)) GetFolderName = Αριστερά (διαδρομή, pos - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName () Dim FolderName As String 'Calling function GetFolderName FolderName = GetFolderName ("Επιλογή φακέλου") Αν FolderName = "" Τότε MsgBox "Δεν επιλέξατε φάκελο." Άλλο MsgBox "Επιλέξατε αυτόν τον φάκελο:" & FolderName End If End Sub 

Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.

Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email