I den här artikeln har vi delat VBA -kod för att skriva en anpassad funktion för att extrahera filnamn och mappnamn från filvägen.
Rådata för detta exempel anger hela sökvägen för vissa filer.
Logisk förklaring
I det här exemplet har vi skapat en anpassad VBA -funktion "FileOrFolderName" som returnerar filen eller mappnamnet som utdata.
"FileOrFolderName" -funktionen tar två parametrar som inmatning. Den första parametern tar filvägen som inmatning. Den andra parametern tar det booleska värdet som inmatning, om vi vill ha filnamn som utdata kommer vi att tilldela detta värde sant värde och om vi vill ha mappnamn som utdata kommer vi att tilldela falskt värde till denna parameter.
För att separera filnamnet och mappnamnet från filens sökväg, för det första hittar vi platsen för den sista förekomsten av sökvägsseparatorn i filvägen. Efter den senaste förekomsten av sökvägsseparator kan vi enkelt skilja filnamn och mappnamn som text. På höger sida av sökvägsseparatorn finns filnamnet och texten på vänster sida av sökvägsavskiljaren är mappnamnet.
Om det inte finns någon sökvägsseparator i filens sökväg, anges standardkatalogsökvägen som mappnamn.
Utför den anpassade funktionen
För att använda definierad anpassad funktion, gå till cell C14 och ange funktionen = FileOrFolderName (B14, FALSE) och i cell D14 anger du funktionen = FileOrFolderName (B14, TRUE), där cell B14 innehåller filvägen.
Cell C14 kommer att ge mappnamnet och Cell D14 kommer att ge filnamnet.
Följ koden nedan
Funktion FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Returnerar mappnamnet eller filnamnet baserat på booleskt värde som tilldelats Dim i As Integer, FolderName As String, FileName As String i = 0' Kod som används för att hitta positionen för sista förekomst av sökvägsseparator Medan InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extrahera mappvägen' Om ingen förekomst av vägavskiljare hittas, tilldela standardkatalogsökvägen Om i = 0 Då mappnamn = CurDir Annat mappnamn = vänster (InputString, i - 1) Sluta om 'Extrahera filnamnet FileName = Right (InputString, Len (InputString) - i)' Returnera mappen eller filnamnet från funktion baserad på ReturnFileName -parameter Om ReturnFileName Då FileOrFolderName = Filnamn Annat FileOrFolderName = Mappnamn Slut om slutfunktion
Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen