我已经在网上搜索过,我已经在 stackoverflow 上搜索了这里的问题,但我一直无法找到解决方案。
这是我想做的:
假设我在名为“MyClass”的类模块中有以下代码
Option Explicit
Dim var1 as integer
Sub Initialize(v as integer)
var1 = v
End Sub
Function GetVar1()
GetVar1 = var1
End Function
然后我在带有代码的单独模块中有一个 UDF
Function InitializeMyClass(v as integer) as MyClass
Dim myvar as MyClass
Set myvar = new MyClass
Call myvar.Initialize(v)
Set InitializeMyClass = myvar
End Function
Function GetMyVar(m as MyClass)
GetMyVar = m.GetVar1()
End Function
现在在单元格 A1 中有“=InitializeMyClass(3)”,在单元格 A2 中有“=GetMyVar(A1)”。我在两个单元格中都收到 #VALUE 错误。这当然是因为我试图将用户定义的数据类型返回到单元格 A1 中。我觉得这应该是可能的,但我不确定如何。
编辑:哦,是的,问题是,“我有没有办法将用户定义的数据类型返回到单元格中,然后在我上面给出的示例中可以从另一个 UDF 调用它?我不知道这是否是否需要 COM。如果需要,任何人都知道我该如何开始?理想情况下,如果有人能举例说明它是如何工作的,那就太好了!
另一个编辑:我们开始吧,现在我知道可以做到:阅读此描述,它不是定量的,但会让您了解他们的工作,http://www.quanttools.com/index.php ?option= com_content&task=view&id=19