【问题标题】:Passing custom objects from VBA to VBScript将自定义对象从 VBA 传递到 VBScript
【发布时间】:2011-12-06 15:57:48
【问题描述】:

我在 Excel 文件中有一个返回自定义类的函数,当我尝试从 VBScript 调用此函数时,我收到“未知运行时错误”

示例 VBA 代码:

Function myVBAFunc() As Variant
   Set myClass1 = New Class1
   myClass1.Name = "Test"
   Set myVBAFunc= myClass1
End Function

调用VBScript代码:

Set Excel = CreateObject("Excel.Application") 
Set Workbook = Excel.Workbooks.open("C:\myFile.xls")
Set myRes = Excel.Run("myVBAFunc")
Excel.Quit

当我尝试设置 myRes 时出现错误,我认为这是由于 VBScript 无法识别对象的类型。有没有办法解决这个问题?

谢谢, 阿什拉夫

【问题讨论】:

    标签: vba object vbscript excel


    【解决方案1】:

    您需要将类模块的实例化属性(在其属性窗口中)从 Private 更改为 PublicNotCreatable

    (也可以严格键入函数)

    Function myVBAFunc() As Class1
       Set myVBAFunc= New Class1
       myVBAFunc.Name = "Test"
    End Function
    

    【讨论】:

    • 谢谢,现在好多了,我可以访问该对象并使用它了。但是,一旦 Excel 对象关闭,我就不能再使用该对象了!有没有办法将对象本地复制到 VBS,这样我就可以在不打开 Excel 的情况下使用它?谢谢
    猜你喜欢
    • 2012-05-04
    • 2012-11-21
    • 2011-10-26
    • 2018-01-20
    • 1970-01-01
    • 2021-10-30
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多