我公司最近“升级”了我们的终端软件。该软件嵌入了 SAX/WinWrap IDE 来创建自定义程序和宏以与软件一起使用,这与 VBA 非常相似 - 只是没有对特定程序(Word、Excel 等)的引用。因为 VBA 解决方案会起作用,所以我将其标记为 VBA(WinWrap 根本不流行,永远不会引起任何关注)。
不幸的是,在这次“升级”中,IDE 只能支持模块内的这么多行,否则模块根本不会加载。我现在想重写其中一些程序以在 VBScript 文件中运行,但一个主要障碍是传递对象变量。该程序使用对我们使用的大多数程序很重要的 Session 对象,但我不确定是否可以将这些对象传递给 vbscript。
我知道您可以通过以下方式将字符串变量传递给 VBS 文件:
Shell "wscript C:\Sripts\" & ScriptName & ".vbs StrArg1 StrArg2"
在 vbs 文件中,您可以使用以下代码来检索这些参数:
Dim Arg1, Arg2
Arg1 = Wscript.Arguments(0)
Arg2 = Wscript.Arguments(1)
但是,这仅适用于字符串参数。它是按字面意思传递的,甚至不是ByRef
/ByVal
变量。
我尝试使用该Run()
功能:
Dim Ses As Session
Set Ses = ActiveSession ' Think of ActiveSession being similar to ActiveSheet within VBA
Run "C:\Scripts\test.vbs", Ses
但它失败了(如预期的那样)给出了一个没有错误描述的异常 800a03ec。如果有的话,可以做些什么来将对象传递给 vbs 文件?