将对象变量传递给VBScript

时间:2019-12-02 23:29:10

标签: vbscript parameter-passing session-variables winwrap

我的公司最近“升级”了我们的终端软件。该软件嵌入了SAX / WinWrap IDE,以创建与该软件一起使用的自定义程序和宏,这与VBA非常相似-只是没有引用特定程序(Word,Excel等)。 因为VBA解决方案起作用是我将其标记为VBA的原因(WinWrap根本不受欢迎,也永远不会引起任何关注)。

不幸的是,在此“升级”中,IDE只能在模块内支持这么多行,否则该模块将无法加载。我现在想重写其中一些程序,以便在VBScript文件中运行,但是主要障碍在于传递对象变量。该程序使用的会话对象对我们使用的大多数程序都很重要,但是我不确定是否可以将这些对象传递给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文件可以做什么?

0 个答案:

没有答案