Это для Excel и VBA. Предположим, что BondClass был правильно определен в модуле класса. Я получаю # ЗНАЧЕНИЕ! когда я набираю «= GetBondPrincipal ()» в ячейку Excel. Я сделал что-то синтаксически неправильно или это просто невозможно в Excel / VBA? Я спрашиваю, потому что я действительно хочу это:
Возвращает пользовательский тип данных в ячейку Excel
, но я не могу найти решение. Поэтому, по крайней мере, я хочу знать, возможно ли то, что я хочу сделать ниже.
<code>
Option Explicit</p>
<p>Function InitializeBond(ir As Double, p As Double) As BondClass
Dim mybond As BondClass
Set mybond = New BondClass
Call mybond.Initialize(ir, p)
InitializeBond = mybond
End Function</p>
<p>Function GetBondPrincipal()
Dim b As BondClass
Set b = New BondClass
b = InitializeBond(0.03, 100) //the code quits here,
//it doesn't like the BondClass return type?
GetBondPrincipal = b.GetPrincipal()
End Function
Я знаю, что в приведенном мной примере мне не нужно вызывать InitializeBond, и я могу просто напечатать «Call b.Initialize (.03,100)». Код будет работать нормально, если я сделаю это. Но я не могу заставить UDF возвращать тип, отличный от встроенного. Есть ли способ сделать что-нибудь из этого? Нужно ли определять назначение для не встроенных типов?