Pakk ut filnavn og mappenavn fra filbanen ved hjelp av VBA i Microsoft Excel

Anonim

I denne artikkelen har vi delt VBA -kode for å skrive en egendefinert funksjon for å trekke ut filnavn og mappenavn fra filbanen.

Rådata for dette eksemplet angir hele banen til visse filer.

Logisk forklaring

I dette eksemplet har vi opprettet en tilpasset VBA -funksjon “FileOrFolderName” som returnerer filen eller mappenavnet som output.

“FileOrFolderName” -funksjonen tar to parametere som input. Første parameter tar filbanen som input. Den andre parameteren tar boolsk verdi som input, hvis vi vil ha filnavn som output, vil vi tildele True parameter til denne parameteren, og hvis vi vil ha mappenavn som output, vil vi tildele False value til denne parameteren.

For å skille filnavnet og mappenavnet fra filbanen, finner vi for det første plasseringen av den siste forekomsten av baneseparatoren i filbanen. Etter den siste forekomsten av banen separator, kan vi enkelt skille filnavn og mappenavn som tekst. På høyre side av banen separator er filnavnet og teksten på venstre side av banen separator er mappenavnet.

Hvis det ikke finnes noen baneutskiller i filbanen, er standard katalogbane angitt som mappenavn.

Utfører den egendefinerte funksjonen

For bruk av definert tilpasset funksjon, gå til celle C14 og skriv inn funksjonen = FileOrFolderName (B14, FALSE) og i celle D14, skriv inn funksjonen = FileOrFolderName (B14, TRUE), der celle B14 inneholder filbanen.

Celle C14 vil gi mappenavnet og Celle D14 vil gi filnavnet.

Følg koden nedenfor

 Funksjon FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Returnerer mappenavnet eller filnavnet basert på boolsk verdi tildelt Dim i As Integer, FolderName As String, FileName As String i = 0' Kode som brukes for å finne posisjonen til siste forekomst av banen separator Mens InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Pakk ut mappebanen' Hvis ingen forekomst av banen skilletegn blir funnet, tilordne deretter standard katalogbane Hvis i = 0 Deretter mappenavn = CurDir Else mappenavn = Venstre (InputString, i - 1) Slutt hvis 'Pakk ut filnavnet FileName = Right (InputString, Len (InputString) - i)' Returnerer mappen eller filnavnet fra funksjon basert på ReturnFileName -parameteren Hvis ReturnFileName Da FileOrFolderName = Filnavn Else FileOrFolderName = Mappenavn Slutt hvis sluttfunksjon 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post