我想编写一个自定义工作表函数,该函数使用我定义为参数的类。我试图做以下事情:
我创建了一个名为 Wrapper 的类:
Private m_value As Integer
Public Property Get value() As Integer
value = m_value
End Property
Public Property Let value(value As Integer)
m_value = value
End Property
然后我写了两个函数:
Function make_wrapper(value As Integer) As wrapper
Set make_wrapper = New wrapper
make_wrapper.value = value
End Function
Function square(wrapper As wrapper) As Integer
square = wrapper.value * wrapper.value
End Function
如果我直接从 VBA 链接这些函数,一切都会按我的预期工作
Sub doit()
MsgBox (square(make_wrapper(7)))
End Sub
显示 49。
如果我尝试直接从 excel 调用该函数,它将不起作用。如果我在单元格中键入“=square(make_wrapper(7))”,它会显示“#VALUE!”。我究竟做错了什么?这可能吗?