Izvlečenje imena datoteke in imena mape iz poti datoteke z uporabo VBA v programu Microsoft Excel

Anonim

V tem članku smo delili kodo VBA za pisanje funkcije po meri za izvlečenje imena datoteke in imena mape iz poti do datoteke.

Surovi podatki za ta primer določajo celotno pot določenih datotek.

Logična razlaga

V tem primeru smo ustvarili funkcijo po meri VBA »FileOrFolderName«, ki vrne ime datoteke ali mape kot izhod.

Funkcija »FileOrFolderName« ima za vhod dva parametra. Prvi parameter za pot vzame pot do datoteke. Drugi parameter za vhod sprejme logično vrednost, če želimo ime datoteke kot izhod, bomo temu parametru dodelili vrednost True, če pa želimo ime mape kot izhod, bomo temu parametru dodelili vrednost False.

Za ločitev imena datoteke in imena mape od poti do datoteke najprej najdemo lokacijo zadnjega pojavljanja ločevalnika poti znotraj poti datoteke. Po zadnjem pojavljanju ločevalnika poti lahko preprosto ločimo ime datoteke in ime mape kot besedilo. Na desni strani ločevalnika poti je ime datoteke, besedilo na levi strani ločevalnika poti pa ime mape.

Če v poti do datoteke ni ločevalnika poti, je kot ime mape podana privzeta pot imenika.

Izvajanje funkcije po meri

Če želite uporabiti definirano funkcijo po meri, pojdite v celico C14 in vnesite funkcijo = FileOrFolderName (B14, FALSE) in v celico D14 vnesite funkcijo = FileOrFolderName (B14, TRUE), kjer celica B14 vsebuje pot do datoteke.

Celica C14 bo dala ime mape, celica D14 pa ime datoteke.

Za kodo sledite spodaj

 Funkcija FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Vrne ime mape ali ime datoteke na podlagi logične vrednosti, dodeljene Dim i As Integer, FolderName As String, FileName As String i = 0' Koda, uporabljena za iskanje zadnje pozicije pojav ločevalnika poti Medtem ko je InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extract the path path' Če ni najdenega pojavljanja ločevalnika poti, potem dodelite privzeta pot imenika Če je i = 0, potem FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Izvlečenje imena datoteke FileName = Right (InputString, Len (InputString) - i)' Vrnitev imena mape ali datoteke iz funkcije, ki temelji na parametru ReturnFileName Če ReturnFileName Potem FileOrFolderName = FileName Else FileOrFolderName = Ime mape End if End Funkcija 

Če vam je bil ta blog všeč, ga delite s prijatelji na Facebooku. Prav tako nam lahko sledite na Twitterju in Facebooku.

Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo svoje delo in ga izboljšamo za vas. Pišite nam na spletnem mestu e -pošte