【问题标题】:VBA to open explorer and select, not open, a selected file nameVBA打开资源管理器并选择而不是打开选定的文件名
【发布时间】:2014-06-25 17:34:13
【问题描述】:

我想要一个宏来打开 Windows 资源管理器并只选择一个文件,但不希望它打开该文件。 我在 excel 中有一个文档名称列表,分为一些变量。 我还在其中包含了一些超链接,因此您可以直接打开所选文件。 但现在我想要一个在资源管理器中选择相应文件并选择它的宏。 所有文件都在预定义的位置,但所有文件名都不同,当然。 例子; D:\username\Documents\workplans\document.001.1.xls D:\username\Documents\workplans\document.002.2.xls D:\username\Documents\workplans\document.003.3.xls

我想在excel中选择对应的文件名,并在资源管理器中启动宏来选择它。 例如,我选择单元格 D3 并启动宏,以便它打开资源管理器并转到以下地址并选择文件; D:\username\Documents\workplans\document.002.2.xls

      A                 B             C             D                 E
 1. var 1             var 2          var 3      doc. Name          Hyperlink
 2. document            1             1     document.001.1.xls  document.001.1
 3. document            2             2     document.002.2.xls  document.002.2
 4. document            3             3     document.003.3.xls  document.003.3

如果我将以下代码直接用于链接,它的工作方式就像我想要的那样,但文件名是可变的。

Sub open_explorer()
Shell "C:\Windows\explorer.exe /select,D:\username\Documents\workplans\document.002.2.xls", vbMaximizedFocus
End Sub

我调整了代码,但它不起作用。我认为问题出在(&范围(activeCell.select))。 我怎样才能让它工作?

Sub open_explorer()
Shell "C:\Windows\explorer.exe /select, D:\username\Documents\workplans\ &Range ActiveCell.Select", vbMaximizedFocus
End Sub

【问题讨论】:

    标签: excel select explorer vba


    【解决方案1】:

    试试这个:

    Sub open_explorer()
    Shell "C:\Windows\explorer.exe /select, ""D:\username\Documents\workplans\" _
        & ActiveCell.Value & """", vbMaximizedFocus
    End Sub
    

    请注意,任何包含空格或其他特殊字符的路径都需要引号。上面字符串中的 双引号,在 D: 之前和 ActiveCell.Value 之后(连接到字符串的末尾)在路径。

    【讨论】:

    • 太棒了,这正是我们需要的!非常感谢!
    • @user3572958 如果这是您需要的,请标记为答案。谢谢!
    • @GlennFromIowa 任何想法,为什么对我来说它只是打开资源管理器,当我使用宏时,但如果我直接在 cmd 窗口中使用命令,它就像魅力一样? (使用 Win10 和 Office 2016)
    • @Phab 我的猜测是路径名中可能有空格或其他特殊字符。如果是这样,您需要用引号将路径括起来。我已经编辑了答案以反映这一点。
    【解决方案2】:

    只有在我为文件名添加扩展名(例如“.xls”)时,上述内容才对我有用。

    Sub open_explorer()
    Shell "C:\Windows\explorer.exe /select, D:\username\Documents\workplans\" & ActiveCell.Value & ".xls", vbMaximizedFocus
    End Sub
    

    【讨论】:

    • 如果您没有在活动单元格中包含扩展名在文件名中,那么是的,您需要将扩展​​名添加到 VBA 字符串中。如果您的扩展包含在 ActiveCell.Value 中,就像 OP 一样,它将找到具有名称的文件,例如,D:\username\Documents\workplans\document.001.1.xls.xls
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 2010-09-24
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 2012-11-20
    • 2011-05-24
    • 2016-11-08
    相关资源
    最近更新 更多