Excel vba 使用 explorer.exe 的相同实例打开文件夹

Excel vba open folder using same instance of explorer.exe

我在 excel vba

中使用了以下代码
returnval = Shell("explorer.exe " & folderPath, vbNormalFocus)

打开文件夹,这很好用,但它会启动 windows 资源管理器的新进程。现在 2 windows 个资源管理器进程在任务管理器中可见。如果我继续将此函数与不同的 folderPath 一起使用,它每次都会创建一个新的资源管理器进程实例。

如何使用现有的 explorer.exe 实例从 excel vba 打开文件夹?

尝试 explorer.exe 的完整路径。例如,您应该使用 C:\WINDOWS\explorer.exe 而不是 explorer.exe。这对我有用。

而不是 shell,ThisWorkbook 具有跟随超链接,该链接将使用默认应用程序打开任何 file/url。它不会为我打开 explorer.exe 的另一个进程。

ThisWorkbook.FollowHyperlink "C:\filepath"

如果你真的需要使用shell,那么你必须调用cmd.exe然后这样开始:

returnval = Shell("cmd.exe /c start filepath")