使用Shell命令打开文件的Ms Excel VBA

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

为了说明上述场景,我们简单地将其与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

上述代码无法工作。其想法是打开记事本应用程序,然后打开记事本文件。有什么帮助吗??
问候 Nayyar
2个回答

4

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

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

1
谢谢你的回复,Tim,但我已经尝试过这个语法中的命令了。 - Xain Cheema
1
子程序测试() Dim filepath As Variant Dim retval As String filepath = "C:\Users\Nayar Asif\Desktop\Test_2.txt" retval = Shell("notepad.exe""" & filepath & """", vbNormalFocus) End Sub。但它不起作用。它会出现“运行时错误53”的错误。 - Xain Cheema
1
这与我的示例不同:您在notepad.exe和文件路径之间没有空格。 - Tim Williams
1
是的,它起作用了。我把引号放错了位置。非常感谢Tim :) - Xain Cheema
我首先将整个 OneNote.exe 的路径放入,然后将文件路径放入,这样就完美地运行了! - Matthew Myers

1
解决方案就是在 notepad.exe 后面加上一个空格,然后再加上第二个引号。
retval = Shell("notepad.exe " & filename, vbnormalfocus)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接