2017-08-22 27 views
1

我有一個類,它擁有一組數組。如何將對象插入到用戶修改的類中的字段的數組中? VBA

當我嘗試向該數組插入新對時,我收到一條錯誤消息。

爲什麼我得到那個錯誤,我該如何解決這個問題?

'#### The class instance: #### 
dim pairsHolder as new ClassArrayOfPairs 
pairsHolder.init(5) 

'#### The pair instance: #### 
dim pair as new ClassPairs 
pair.setLeft(4) ...  pair.setRight(7) .... 

'#### Trying to insert pair to array: #### 
Call pairsHolder.insertPairAt (0,pair) 

這最後一條語句引發錯誤:

RunTime error 438: Object doesn't support this property or method

這裏是類:

'@@@@@ CLASS ArrayOfPairs @@@@@ 
'-------------------------------- 
Private pairArr() As ClassPairs 
Private maxPairs As Integer 

'##### Initialize Parameters ##### 
Public Sub init(howManyPairs As Integer) 
    maxPairs = howManyPairs 
    ReDim pairArr(maxPairs - 1) As ClassPairs 
End Sub 


'##### INSERT pair ##### 
Public Sub insertPairAt(index as Integer, pair As ClassPairs) 
     pairArr(index) = pair 
End Sub 

只是爲了澄清,ClassPairs只是與LeftRight字段變量的對象。

+0

你在第一行代碼中有錯字嗎?你的類似乎沒有被稱爲'ClassArrayOfPairs',但這就是你創建的對象類型? – Wolfie

回答

3

我能夠pairArr(index) = pair之前簡單地增加Set這樣來解決您的問題:

'##### INSERT pair ##### 
Public Sub insertPairAt(index as Integer, pair As ClassPairs) 
    Set pairArr(index) = pair 
End Sub 

要設置pairArr(index) = pairpairpairArr(index)是對象。因此,您需要將對象引用指定爲pairArr(index),因爲它是pair,並且Set用於指定對象引用msdn reference

+0

Bro!你現在是我的上帝:) 謝謝!這有助於 –

+0

@TalKohavy沒問題!很高興我能幫上忙! – GibralterTop

相關問題