添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
腼腆的柠檬  ·  王红阳·  9 月前    · 

在用VBA操作文件和文件夹的过程中,除了新建文件夹,我们还经常需要与文件夹有个人机交互的过程,比如选择文件所在的文件夹,然后再执行一系列VBA动作。

这个选择的过程也是打开文件夹的一种,这种在VBA里用内置的对话框对象FileDialog就可以实现。

今天要讲的打开文件夹不是这种,而是指在完成了一系列VBA动作后,如何直接打开结果文件夹,看下执行的情况。

以前我们往往都是执行完程序后,再用鼠标去打开结果文件夹看下结果,今天介绍的方法可以直接连这个鼠标步骤都免了。

接下来介绍几种在vba中打开文件夹的方法:

1.用Shell函数打开指定的文件夹

代码如下:

Sub exceloffice()
    '*****************
    '上面一连串代码
    '最后打开文件夹看下效果
    Dim sPath As String
    sPath = "c:\test"
    Shell "explorer.exe " & sPath, vbMaximizedFocus
End Sub

Shell函数是vba内置的函数,使用起来非常方便。它可以直接运行各种exe程序,同时附带参数运行。

使用Shell函数还可以 直接运行Python打包后的exe程序,从而借助Python的强大功能助推VBA

在本例中,Shell函数通过调用文件资源管理器 explorer.exe 直接打开指定的文件夹,其中 vbMaximizedFocus 表示打开的时候最大化显示。

方法二:用 Shell 对象打开指定的文件夹

代码如下:

Sub exceloffice()
    '*****************
    '上面一连串代码
    '最后打开文件夹看下效果
    Dim sPath As String
    sPath = "c:\test"
    Dim oShell As Object
    Set oShell = VBA.CreateObject("shell.application")
    With oShell
        .Open (sPath)
    End With
End Sub

其实这个原理和Shell是一样的,但是S hell 对象提供了自动化接口,功能更全,不仅可以打开文件夹,还可以做很多操作电脑的事情。

比如切换到桌面、打开运行对话框、关闭电脑等等,如下所示

Sub exceloffice()
    Set oShell = CreateObject("shell.application")
    With oShell
     '切换到桌面
    .ToggleDesktop
     '打开运行对话框
     .FileRun
    '关闭电脑,记得保存文件
    .ShutdownWindows
    End With
End Sub

最后附上Shell对象的所有方法列表:

微信公众号