我正在寻找一个函数,该函数将返回文件路径中的第四个文件。例如,假设我的文件路径为“ 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
此函数仅返回直接父文件夹。我该如何调整它以指定直接父文件夹以外的文件夹。
谢谢!
答案 0 :(得分:3)
您可以使用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
答案 1 :(得分:2)
您可以使用以下功能完成此操作:
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
参数使您可以选择要深入的级别(目录)。