Bu yazımızda, dosya yolundan dosya adını ve klasör adını çıkarmak için özel bir işlev yazmak için VBA kodunu paylaştık.
Bu örnek için ham veriler, belirli dosyaların tam yolunu belirtir.
Mantıksal açıklama
Bu örnekte, dosya veya klasör adını çıktı olarak döndüren VBA özel işlevi “FileOrFolderName” oluşturduk.
“FileOrFolderName” fonksiyonu girdi olarak iki parametre alır. İlk parametre girdi olarak dosya yolunu alır. İkinci parametre girdi olarak Boolean değerini alır, çıktı olarak dosya adını istiyorsak bu parametreye True değerini, çıktı olarak klasör adını istiyorsak bu parametreye False değerini atayacağız.
Dosya yolundan dosya adını ve klasör adını ayırmak için öncelikle dosya yolu içinde yol ayırıcının son geçtiği yeri buluruz. Yol ayırıcının son oluşumundan sonra, dosya adını ve klasör adını metin olarak kolayca ayırabiliriz. Yol ayırıcının sağ tarafında dosya adı, sol tarafında metin klasör adıdır.
Dosya yolunda yol ayırıcı yoksa, klasör adı olarak varsayılan dizin yolu belirtilir.
Özel işlevi yürütme
Tanımlanmış özel işlevi kullanmak için C14 hücresine gidin ve =DosyaOrKlasörAdı(B14,YANLIŞ) işlevini girin ve D14 hücresine =DosyaveyaKlasörAdı(B14,DOĞRU) işlevini girin; burada B14 hücresi dosya yolunu içerir.
Hücre C14, klasör adını verecek ve Hücre D14 dosya adını verecektir.
Lütfen kod için aşağıdan takip edin
Function FileOrFolderName(InputString As String, _ ReturnFileName As Boolean) As String 'Dim i As Integer, FolderName As String, FileName As String i = 0'a atanan boole değerine göre klasör adını veya dosya adını döndürür. yol ayırıcının oluşumu InStr(i + 1, InputString, Application.PathSeparator) > 0 iken i = InStr(i + 1, InputString, Application.PathSeparator) Wend 'Klasör yolunu ayıklayın 'Yol ayırıcı bulunamazsa, ata varsayılan dizin yolu Eğer i = 0 ise KlasörAdı = CurDir Else KlasörAdı = Sol(InputString, i - 1) End If 'Dosya adının ayıklanması FileName = Right(InputString, Len(InputString) - i) 'Klasör veya dosya adını döndürme ReturnFileName parametresine dayalı işlevden ReturnFileName ise, FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function
Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın