[英]Setting String Array as Combobox List gives Argument is required error in Visual Basic
[英]Setting an array value results in an Argument not optional error in Visual Basic
我試圖在For循環中設置Collections數組的值。 但是,當我去運行程序時,它會拋出一個編譯錯誤,指出“參數不可選”,並突出顯示我設置數組值的部分。 當我調試子例程時,我無法越過ConvertbucketCollectionTobucketArray()的第一行。 此時,bucketArray元素0到12的值為Nothing,而bucketCollection包含13個元素(1-13),其中只有幾個包含項。
Dim bucketCollection As New Collection 'the Collection of buckets
Dim bucketArray(12) As New Collection 'bucketCollection as an array
...
Private Sub ConvertbucketCollectionTobucketArray() 'debugger stops here
Dim newCol As Collection
Dim i As Integer
For i = 1 To bucketCollection.count
Set newCol = bucketCollection.Item(i)
bucketArray(i - 1) = newCol 'highlighted line here
Next
End Sub
由於collection是一個對象,因此在將其復制到元素時必須使用set(這是您的錯誤)。
Set bucketArray(i - 1) = newCol
這不會導致錯誤,但是不需要將數組設置為new。
Dim bucketArray(12) As Collection
並且,如果bucketCollection是一個類范圍的變量,則應分別創建一個新實例並對其進行聲明。 在功能之一中創建它的新實例。 否則,如果您兩次運行相同的代碼,則可能使用相同的實例。
Sub test()
Set bucketCollection = New Collection
populate
ConvertbucketCollectionTobucketArray
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.