【问题标题】:Ms Excel VBA - Using Shell command to open filesMs Excel VBA - 使用 Shell 命令打开文件
【发布时间】:2017-11-23 22:29:16
【问题描述】:

我正在用 Excel-VBA 开发一个工作簿,我想使用 HEC DSS 执行一个脚本。这意味着,使用 excel-vba,我需要先打开“HEC DSS”,然后我会指示应用程序打开脚本。

我们保持简单,并尝试将上述 scnerio 与 NotePAd.exe 和 txt 文件相关联。为此,我用谷歌搜索并尝试了不同的东西,但没有一个奏效。我正在尝试使用 SHELL 命令。请在下面找到代码:


Sub test()

Dim retval as string

dim file name as variant

filename="C:\Users\Nayar Asif\Desktop\Test_2.txt"

retval = Shell("notepad.exe" & filename, vbnormalfocus)

end sub

上面的代码不起作用。这个想法是打开记事本应用程序,然后打开记事本文件。有什么帮助????

问候 纳亚尔

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    带空格的文件路径应该用引号引起来

    retval = Shell("notepad.exe """ & filename & """", vbnormalfocus)
    

    【讨论】:

    • 感谢蒂姆的回复,但我已经尝试过此语法中的命令。
    • Sub test() Dim filepath As Variant Dim retval As String filepath = "C:\Users\Nayar Asif\Desktop\Test_2.txt" retval = Shell("notepad.exe""" & filepath & """", vbNormalFocus) 结束子。但它不起作用。它给出了错误“运行时错误 53
    • 这和我的例子不一样:notepad.exe和文件路径之间没有空格
    • 是的。有效。我以不正确的方式放置“”。非常感谢蒂姆 :)
    • 我用这个先放了OneNote.exe的整个路径,然后再放文件路径,完美运行!
    【解决方案2】:

    解决方案只是在 notepad.exe 之后和第二个引号之前的“空格”:

    retval = Shell("notepad.exe " & filename, vbnormalfocus)
    

    【讨论】:

      猜你喜欢
      • 2019-12-29
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多