Я искал в Интернете и искал вопросы здесь по stackoverflow, но мне не удалось найти решение.
Вот что я хотел бы сделать:
Предположим, у меня есть следующий код в модуле класса с именем "MyClass"
<code>
Option Explicit
Dim var1 as integer</p>
<p>Sub Initialize(v as integer)
var1 = v
End Sub</p>
<p>Function GetVar1()
GetVar1 = var1
End Function
Тогда у меня есть UDF в отдельном модуле с кодом
<code>
Function InitializeMyClass(v as integer) as MyClass
Dim myvar as MyClass
Set myvar = new MyClass
Call myvar.Initialize(v)
Set InitializeMyClass = myvar
End Function</p>
<p>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