În acest articol, am partajat codul VBA pentru scrierea unei funcții personalizate pentru extragerea numelui fișierului și numele folderului din calea fișierului.
Datele brute pentru acest exemplu specifică calea completă a anumitor fișiere.
Explicație logică
În acest exemplu, am creat funcția personalizată VBA „FileOrFolderName” care returnează numele fișierului sau folderului ca ieșire.
Funcția „FileOrFolderName” ia doi parametri ca intrare. Primul parametru ia calea fișierului ca intrare. Al doilea parametru ia valoarea booleană ca intrare, dacă vrem numele fișierului ca ieșire, atunci vom atribui valoare Adevărată acestui parametru și dacă vrem numele folderului ca ieșire, atunci vom atribui valoare falsă acestui parametru.
Pentru a separa numele fișierului și numele folderului de calea fișierului, în primul rând, găsim locația ultimei apariții a separatorului de cale în calea fișierului. După ultima apariție a separatorului de cale, putem separa cu ușurință numele fișierului și numele folderului ca text. În partea dreaptă a separatorului de cale se află numele fișierului, iar textul din partea stângă a separatorului de cale este numele folderului.
Dacă nu există un separator de cale în calea fișierului, atunci calea directorului implicit este specificată ca nume de folder.
Executarea funcției personalizate
Pentru utilizarea funcției personalizate definite, mergeți la celula C14 și introduceți funcția = FileOrFolderName (B14, FALSE) și în celula D14, introduceți funcția = FileOrFolderName (B14, TRUE), unde celula B14 conține calea fișierului.
Celula C14 va da numele folderului, iar celula D14 va da numele fișierului.
Vă rugăm să urmați codul de mai jos
Funcția FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Returnează numele de folder sau numele de fișier pe baza valorii booleene atribuite Dim i Ca întreg, FolderName As String, FileName As String i = 0' Cod utilizat pentru găsirea poziției ultimului apariția separatorului de cale În timp ce InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extract the folder path' If No occurrence of path separator is found then assign calea directorului implicit If i = 0 Then FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Extracting the file name FileName = Right (InputString, Len (InputString) - i)' Returnarea folderului sau a fișierului din funcția bazată pe parametrul ReturnFileName Dacă ReturnFileName, atunci FileOrFolderName = FileName Altfel FileOrFolderName = FolderName Sfârșit Dacă funcția Sfârșit
Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail