V tomto článku jsme sdíleli kód VBA pro psaní vlastní funkce pro extrahování názvu souboru a názvu složky z cesty k souboru.
Nezpracovaná data pro tento příklad určují úplnou cestu určitých souborů.
Logické vysvětlení
V tomto příkladu jsme vytvořili vlastní funkci VBA „FileOrFolderName“, která jako výstup vrací název souboru nebo složky.
Funkce „FileOrFolderName“ používá jako vstup dva parametry. První parametr bere jako vstup cestu k souboru. Druhý parametr bere jako vstup logickou hodnotu, pokud chceme jako výstup název souboru, přiřadíme tomuto parametru hodnotu True a pokud chceme jako výstup název složky, přiřadíme tomuto parametru hodnotu False.
Pro oddělení názvu souboru a názvu složky od cesty k souboru nejprve najdeme umístění posledního výskytu oddělovače cesty v cestě k souboru. Po posledním výskytu oddělovače cesty můžeme název souboru a název složky snadno oddělit jako text. Na pravé straně oddělovače cesty je název souboru a text na levé straně oddělovače cesty je název složky.
Pokud v cestě k souboru neexistuje oddělovač cesty, je jako název složky zadána výchozí cesta k adresáři.
Spuštění vlastní funkce
Pro použití definované vlastní funkce přejděte do buňky C14 a zadejte funkci = FileOrFolderName (B14, FALSE) a do buňky D14 zadejte funkci = FileOrFolderName (B14, TRUE), kde buňka B14 obsahuje cestu k souboru.
Buňka C14 poskytne název složky a buňka D14 název souboru.
Pro kód prosím postupujte níže
Funkce FileOrFolderName (InputString As String, _ ReturnFileName As Boolean) As String 'Vrací název složky nebo název souboru na základě přidělené booleovské hodnoty Dim i As Integer, FolderName As String, FileName As String i = 0' Kód používaný k nalezení polohy posledního výskyt oddělovače cesty Zatímco InStr (i + 1, InputString, Application.PathSeparator)> 0 i = InStr (i + 1, InputString, Application.PathSeparator) Wend 'Extrahujte cestu ke složce' Pokud není nalezen žádný oddělovač cesty, přiřaďte výchozí cesta k adresáři If i = 0 Then FolderName = CurDir Else FolderName = Left (InputString, i - 1) End If 'Extracting the file name FileName = Right (InputString, Len (InputString) - i)' Returning the folder or file name z funkce založené na parametru ReturnFileName If ReturnFileName Then FileOrFolderName = FileName Else FileOrFolderName = FolderName End If End Function
Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail