上一个文件夹级别

ind*_*ser 4 excel vba excel-vba

我有一个宏来获取子文件夹数据.但是我也想从主文件夹中获取一些东西.

我看了如何使用vba获取当前工作目录?但需要更改activeworkbook路径:

Application.ActiveWorkbook.Path might be "c:\parent\subfolder"
Run Code Online (Sandbox Code Playgroud)

我想要

"c:\parent\"
Run Code Online (Sandbox Code Playgroud)

使用Excel 365 VBA

Ale*_* K. 6

由于路径可能不是当前工作目录,因此您需要从字符串中提取路径.

找到最后一个\并读取左边的所有字符:

ParentPath = Left$(Path, InStrRev(Path, "\"))
Run Code Online (Sandbox Code Playgroud)

如果您正在使用当前目录ChDir ".."将跳转到一个级别,则可以返回新路径CurrDir.


Com*_*ern 5

最可靠的方法是使用Scripting.FileSystemObject。它具有一种无需解析即可获取父文件夹的方法:

With CreateObject("Scripting.FileSystemObject")
    Debug.Print .GetParentFolderName(Application.ActiveWorkbook.Path)
End With
Run Code Online (Sandbox Code Playgroud)