【发布时间】:2012-10-19 10:42:30
【问题描述】:
是否可以在需要时从 VBA 代码调用 .vbs 脚本?如果可能的话,你能给我一个示例代码吗?
【问题讨论】:
-
因为它是重复的,所以我投票关闭它作为重复。
标签: vbscript
是否可以在需要时从 VBA 代码调用 .vbs 脚本?如果可能的话,你能给我一个示例代码吗?
【问题讨论】:
标签: vbscript
运行文件:
Shell "wscript c:\null\a.vbs", vbNormalFocus
如果 VBS 想要使用控制台,请将 wscript 替换为 cscript。
或者您可以添加对Microsoft Script Control的引用,并直接与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"
【讨论】:
shell 行运行 vbs ... 要避免 User-defined type not defined,您必须在 VBA IDE 中单击 tools -> references &勾选 Microsoft Script Control 1.0
set scr = CreateObject("MSScriptControl.ScriptControl") 创建,这是某些环境中的唯一选项。
我只想补充 Alex 的回答,在某些环境中,对象必须按以下方式创建:
set scr = CreateObject("MSScriptControl.ScriptControl")
如果亚历克斯在他的答案中添加了这个,我会删除这个。
【讨论】:
试试这样的东西
ChDir ThisWorkbook.Path
Shell "wscript " & ThisWorkbook.Path & "\your.vbs", vbNormalFocus
它帮助了我。
【讨论】:
如果您的路径名包含-,您可能想要使用""" 对于我来说,以下解决了这个问题:
Shell "cscript """ & ActiveWorkbook.Path & """\your.vbs", vbNormalFocus
【讨论】: