关于 vbscript:从 Excel VBA 调用 .vbs 脚本

Calling a .vbs script from Excel VBA

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


运行文件:

1
2
Shell"wscript c:\
ull\\a.vbs", vbNormalFocus

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

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

1
2
3
4
Dim scr As ScriptControl: Set scr = New ScriptControl
scr.Language ="VBScript"
scr.AddCode"sub T: msgbox""All Hail Cthulhu"": end sub"
scr.Run"T"


我只想添加到 Alex\\' 的答案,即在某些环境中,对象必须按以下方式创建:

1
set scr = CreateObject("MSScriptControl.ScriptControl")

如果亚历克斯在他的答案中添加了这个,我会删除这个。


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

1
Shell"cscript""" & ActiveWorkbook.Path &"""\\your.vbs", vbNormalFocus

试试这样的

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

它帮助了我。