String 如何在Access VBA中同时使用InStrRev和Split函数在最后一次出现字符之前分割字符串?

String 如何在Access VBA中同时使用InStrRev和Split函数在最后一次出现字符之前分割字符串?,string,vba,String,Vba,我试图找到字符串中最后出现的“\”(它是一个文件路径),并将字符串拆分为包含“\”之前的所有内容,因此只保留文件名。例如,我的路径是“C:\Users\exampleUser\examplefile.txt”,我只希望它返回“C:\Users\exampleUser\”。我已经找到了在其他语言(但不是VBA)上实现这一点的方法 编辑:顺便说一句,我不希望这是硬编码的。我使用文件系统对象在所有子文件夹中循环,并对给定名称和路径的特定文件执行某些命令,因此我不知道循环每次迭代的文件路径是什么。使用I

我试图找到字符串中最后出现的“\”(它是一个文件路径),并将字符串拆分为包含“\”之前的所有内容,因此只保留文件名。例如,我的路径是“C:\Users\exampleUser\examplefile.txt”,我只希望它返回“C:\Users\exampleUser\”。我已经找到了在其他语言(但不是VBA)上实现这一点的方法


编辑:顺便说一句,我不希望这是硬编码的。我使用文件系统对象在所有子文件夹中循环,并对给定名称和路径的特定文件执行某些命令,因此我不知道循环每次迭代的文件路径是什么。

使用
INSTRREV
MID
RIGHT
来执行此操作
InStrRev(“c:\testpath\testfile.txt”,“\”)
Split(strInput,“\”)(UBound(Split(strInput,“\”)))
此外,您可以尝试
Left
instrev

Function GetDirectoryName(ByVal strFile As String, ByVal strDelimiter As String) As String
    GetDirectoryName = Left(strFile, InStrRev(strFile, "\", -1))
End Function

如果您已经在使用
文件系统对象
,最简单的方法是使用内置方法:

Private Sub Example()

    Dim fso As Scripting.FileSystemObject
    Dim path As String

    Set fso = New Scripting.FileSystemObject
    path = fso.GetParentFolderName("C:\Users\exampleUser\examplefile.txt")
    Debug.Print path

End Sub