繁体   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