Udtræk filnavn og mappenavn fra filstien ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel har vi delt VBA -kode til at skrive en brugerdefineret funktion til udtrækning af filnavn og mappenavn fra filstien.

Rådata for dette eksempel angiver den fulde sti for bestemte filer.

Logisk forklaring

I dette eksempel har vi oprettet en VBA -brugerdefineret funktion "FileOrFolderName", der returnerer fil- eller mappenavnet som output.

Funktionen “FileOrFolderName” tager to parametre som input. Første parameter tager filsti som input. Anden parameter tager boolesk værdi som input, hvis vi vil have filnavn som output, vil vi tildele denne parameter sand værdi, og hvis vi vil have mappenavn som output, vil vi tildele Falsk værdi til denne parameter.

For at adskille filnavnet og mappenavnet fra filstien finder vi for det første placeringen af ​​den sidste forekomst af stiudskilleren i filstien. Efter den sidste forekomst af stiseparator kan vi let adskille filnavn og mappenavn som tekst. På højre side af stiudskilleren er filnavnet og teksten i venstre side af stiudskilleren er mappenavnet.

Hvis der ikke findes en stiseparator i filstien, er standardmappestien angivet som mappenavn.

Udførelse af den brugerdefinerede funktion

Hvis du vil bruge defineret brugerdefineret funktion, skal du gå til celle C14 og indtaste funktionen = FileOrFolderName (B14, FALSE) og i celle D14 skal du indtaste funktionen = FileOrFolderName (B14, TRUE), hvor celle B14 indeholder filstien.

Celle C14 giver mappenavnet og Celle D14 giver filnavnet.

Følg venligst nedenstående for koden

 Funktion FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Returnerer mappenavnet eller filnavnet baseret på boolean værdi, der er tildelt Dim i As Integer, FolderName As String, FileName As String i = 0' Kode, der bruges til at finde positionen sidste forekomst af stiseparator Mens InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Uddrag mappestien' Hvis der ikke findes forekomst af stiudskiller, tildel derefter standardmappestien Hvis i = 0 Så er FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Udtrækning af filnavnet FileName = Right (InputString, Len (InputString) - i)' Returnering af mappen eller filnavnet fra funktion baseret på ReturnFileName -parameter Hvis ReturnFileName Så FileOrFolderName = Filnavn Else FileOrFolderName = FolderName End If End Function 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet