Tiedostonimen ja kansion nimen poimiminen tiedostopolusta käyttämällä Microsoft Excelin VBA: ta

Anonim

Tässä artikkelissa olemme jakaneet VBA -koodin mukautetun toiminnon kirjoittamiseen tiedostonimen ja kansion nimen poimimiseksi tiedostopolusta.

Tämän esimerkin raakatiedot määrittävät tiettyjen tiedostojen koko polun.

Looginen selitys

Tässä esimerkissä olemme luoneet mukautetun VBA -toiminnon "FileOrFolderName", joka palauttaa tiedoston tai kansion nimen tulostuksena.

"FileOrFolderName" -toiminto ottaa käyttöön kaksi parametria. Ensimmäinen parametri käyttää tiedoston polkua tulona. Toinen parametri ottaa tuloksi Boolen arvon, jos haluamme tiedoston nimen ulostulona, ​​annamme tälle parametrille True -arvon ja jos haluamme kansion nimen ulostulona, ​​annamme tälle parametrille False -arvon.

Tiedostonimen ja kansion nimen erottamiseksi tiedostopolusta löydämme ensin polunerottimen viimeisen esiintymispaikan tiedostopolusta. Polunerottimen viimeisen esiintymisen jälkeen voimme helposti erottaa tiedostonimen ja kansion nimen tekstiksi. Polunerottimen oikealla puolella on tiedostonimi ja polunerottimen vasemmalla puolella oleva teksti on kansion nimi.

Jos tiedostopolussa ei ole polkuerotinta, oletushakemistopolku määritetään kansion nimeksi.

Mukautetun toiminnon suorittaminen

Jos haluat käyttää määritettyä mukautettua toimintoa, siirry soluun C14 ja kirjoita funktio = FileOrFolderName (B14, FALSE) ja soluun D14 funktio = FileOrFolderName (B14, TRUE), jossa solu B14 sisältää tiedoston polun.

Solussa C14 annetaan kansion nimi ja solussa D14 tiedostonimi.

Seuraa koodia alla

 Toiminto FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Palauttaa kansion nimen tai tiedostonimen, joka perustuu määritettyyn totuusarvoon Dim i Integer, FolderName As String, FileName As String i = 0' Koodi, jota käytetään viimeisen sijainnin löytämiseen polunerottimen esiintyminen InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Pura kansion polku' Jos polunerottimen esiintymistä ei löydy, määritä oletushakemistopolku If i = 0 Then FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Tiedostonimen purkaminen FileName = Right (InputString, Len (InputString) - i)' Kansion tai tiedoston nimen palauttaminen funktiosta ReturnFileName -parametrin perusteella If ReturnFileName then FileOrFolderName = FileName Else FileOrFolderName = FolderName End if End Function 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse