14

是否可以在需要时从 VBA 代码调用 .vbs 脚本?如果可能的话,你能给我一个如何做到这一点的示例代码吗?

4

4 回答 4

25

要运行文件:

Shell "wscript c:\null\a.vbs", vbNormalFocus

如果 VBS 想要使用控制台,请替换wscript为。cscript

或者您可以添加对Microsoft 脚本控件的引用并直接与 VBScript 运行时交互以执行 VBS 代码、程序等;

Dim scr As ScriptControl: Set scr = New ScriptControl
scr.Language = "VBScript"
scr.AddCode "sub T: msgbox ""All Hail Cthulhu"": end sub"
scr.Run "T"
于 2012-10-30T11:13:23.167 回答
10

我只想添加到亚历克斯的答案,在某些环境中,必须以下列方式创建对象:

set scr = CreateObject("MSScriptControl.ScriptControl")

如果亚历克斯将此添加到他的答案中,我将删除这个。

于 2014-08-28T15:10:34.390 回答
0

尝试这样的事情

ChDir ThisWorkbook.Path
Shell "wscript " & ThisWorkbook.Path & "\your.vbs", vbNormalFocus

它帮助了我。

于 2016-10-15T08:03:59.520 回答
0

"""如果您的路径名包含对我来说,您可能想要使用-以下解决了这个问题:

Shell "cscript """ & ActiveWorkbook.Path & """\your.vbs", vbNormalFocus
于 2019-04-25T07:53:23.067 回答