0
をサポートしていないバリアント配列に要素を追加しようとすると、私はVBA実行時エラー438:オブジェクトはこのプロパティまたはメソッド
エラー438
を取得します。デバッグを手伝ってもらえますか?あなたはループを配列に入れ、タイプParty
の異なるオブジェクトを持つようにしたい場合は、これは
Private m_lGuestsNumber As Long
Public Property Get GuestsNumber() As Long
GuestsNumber = m_lGuestsNumber
End Property
Public Property Let GuestsNumber(ByVal lNewValue As Long)
m_lGuestsNumber = lNewValue
End Property
:THX
Public Function CouponList() As Double
Dim nbCoupons_lg As Integer
Dim counter_lg As Integer
Dim coupons_var As Variant
Dim coupon As Cls_Coupon
nbCoupons_lg = Maturity_db * CouponPeriodicity_db
If (Not nbCoupons_lg = 0) Then
ReDim coupons_var(1 To nbCoupons_lg) As Variant
For counter_lg = 1 To nbCoupons_lg
Set coupon = New Cls_Coupon
coupon.Period_lg = counter_lg
coupon.Value_db = AnnualCouponRate_db * ParValue_db
coupon.PresentValue_db = coupon.Value_db/(1 + AnnualDiscountRate_db)^(coupon.Period_lg/Maturity_db)
coupons_var(counter_lg) = coupon
Next counter_lg
End If
CouponList = coupons_var
End Function
暗闇の中での撮影:「coupons_var(1〜nbCoupons_lg)を変種として」のようにあなたのcoupons_varを定義し、そのReDim-Thingを削除します。 – Flocke
@Flocke - 暗すぎる - 'nbCoupons_lg'は定義されていないので、コンパイルされません。 VBEditorは、配列が宣言されたときに、「Dim」に値を持つのが好きです。 – Vityata
'set coupons_var(counter_lg)= coupon'を試すことができますか? – Vityata