我在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无法识别对象的类型引起的。有什么方法可以解决这个问题吗?
谢谢, Achraf
答案 0 :(得分:3)
您需要将类模块的instancing属性(在其属性窗口中)从 Private 更改为 PublicNotCreatable 。
(您也可以严格输入功能)
Function myVBAFunc() As Class1
Set myVBAFunc= New Class1
myVBAFunc.Name = "Test"
End Function