Faili nime ja kausta nime ekstraheerimine failiteelt, kasutades Microsoft Excelis VBA -d

Anonim

Selles artiklis oleme jaganud VBA -koodi kohandatud funktsiooni kirjutamiseks, et eraldada failiteelt failinimi ja kausta nimi.

Selle näite töötlemata andmed määravad teatud failide täieliku tee.

Loogiline seletus

Selles näites oleme loonud VBA kohandatud funktsiooni „FileOrFolderName”, mis tagastab väljundina faili või kausta nime.

Funktsioon „FileOrFolderName” kasutab sisendina kahte parameetrit. Esimene parameeter kasutab sisendina faili teed. Teine parameeter võtab sisendiks loogilise väärtuse, kui soovime väljundina faili nime, siis määrame sellele parameetrile tõelise väärtuse ja kui soovime väljundina kausta nime, siis määrame sellele parameetrile vale väärtuse.

Failinime ja kausta nime failiteest eraldamiseks leiame esmalt tee eraldaja viimase esinemise asukoha failiteel. Pärast tee eraldaja viimast esinemist saame hõlpsasti eraldada failinime ja kausta nime tekstina. Tee eraldaja paremal küljel on faili nimi ja tee eraldaja vasakul pool olev tekst on kausta nimi.

Kui failiteel pole tee eraldajat, määratakse kataloogi nimeks vaikimisi kataloogi tee.

Kohandatud funktsiooni täitmine

Määratud kohandatud funktsiooni kasutamiseks minge lahtrisse C14 ja sisestage funktsioon = FileOrFolderName (B14, FALSE) ning lahtrisse D14 sisestage funktsioon = FileOrFolderName (B14, TRUE), kus lahter B14 sisaldab faili teed.

Lahtris C14 antakse kausta nimi ja lahtris D14 failinimi.

Palun järgige koodi allpool

 Funktsioon FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) Stringina 'Annab vastuseks kaustanime või failinime, mis põhineb määratud loogilisel väärtusel Dim i Integer, FolderName As String, FileName As String i = 0' Viimase asukoha leidmiseks kasutatud kood tee eraldaja esinemine Kuigi InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Kausta tee ekstraktimine' vaikimisi kataloogi tee Kui i = 0 siis FolderName = CurDir Muu FolderName = Vasak (InputString, i - 1) End If 'Failinime ekstraheerimine FileName = Right (InputString, Len (InputString) - i)' Kausta või faili nime tagastamine funktsioonist, mis põhineb ReturnFileName parameetril If ReturnFileName Siis FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function 

Kui teile see blogi meeldis, jagage seda oma sõpradega Facebookis. Lisaks saate meid jälgida Twitteris ja Facebookis.

Tahaksime sinust kuulda, andke meile teada, kuidas saaksime oma tööd paremaks muuta ja teie jaoks paremaks muuta. Kirjuta meile meilisaidile