簡體   English   中英

Excel VBA:如何從文件路徑中提取特定的文件夾

[英]Excel VBA: How to extract specific folder from file path

我正在尋找一個函數,該函數將在文件路徑中返回第四個文件。 例如,假設我的文件路徑為“ C:\\ Users \\ Desktop \\ Programs \\ Training Log \\ Folder Database”,而我只想提取“ Training”文件夾並另存為變量。 我該怎么做呢?

這是我當前的功能:

Function GetFilenameFromPath(ByVal strPath As String) As String

    If Right$(strPath, 1) <> "\" And Len(strPath) > 0 Then
        GetFilenameFromPath = GetFilenameFromPath(Left$(strPath, Len(strPath) - 1)) + Right$(strPath, 1)
    End If
End Function

此函數僅返回直接父文件夾。 我該如何調整它以指定直接父級以外的文件夾。

謝謝!!

您可以使用Split獲得第4部分。

Sub Sample()
    Dim FilePath As String
    Dim MyAr As Variant

    FilePath = "C:\Users\Desktop\Programs\Training Log\Folder Database"
    MyAr = Split(FilePath, "\")

    Debug.Print MyAr(4)
End Sub

您可以使用以下功能完成此操作:

Public Function getParentFolder(path As String, Optional level As Integer = 0)
    Dim pathTokens()    As String
    pathTokens = VBA.split(path, "\")
    Debug.Assert level >= 0 And level <= UBound(pathTokens)
    getParentFolder = pathTokens(UBound(pathTokens) - level)
End Function

通過使用Optional ,默認值為0,因此您可以將其用作單參數或二參數函數。 level參數使您可以選擇要深入的級別(目錄)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM