[英]Excel VBA Passing in an array of 2D arrays
我正在使用Excel VBA中的2D數組數組。 我有功能...
Public Function constructStack(vbr() As Variant, hr As Integer) As stack
我在哪里做的是堆棧。 我有另一個函數,我從中調用constructStack。 這里是電話:
Set stacks(i) = stack(i).constructStack(vbr(i), i)
vbr恰好是2D陣列的陣列。 看到vbr(i)指的是類型變量的單個2D數組,我感到困惑,為什么我會收到“類型不匹配:預期為數組或用戶定義類型”的編譯錯誤。
幾乎好像編譯器沒有意識到vbr()將被24個2D數組填充,這就是為什么它給了我編譯錯誤。 這是我如何暗淡vbr:
Dim vbr(1 To 24) As Variant
聲明vbr之后,我最終運行此for循環,為vbr的每個元素分配一個2D數組...
vb = GetVBRSorted
For j = 1 To 24
For i = 2 To 2000
If (vb(i, 1)(j) <> "") Then
lastFilleds(j) = i
End If
Next
Next
For j = 1 To 24
ReDim vbrTemp(1 To lastFilleds(j) - 1, 1 To 5)
For i = 2 To lastFilleds(j)
For k = 1 To 5
vbrTemp(i - 1, k) = vb(i, k)(j)
Next
Next
vbr(j) = vbrTemp
Next
GetVBRSorted返回與vbr完全相同的類型-2D數組的數組。 如果有人在這個問題上有任何意見,將不勝感激。
您擁有.constructStack(vbr(i), i)
的調用正在傳遞數組的單個元素。 如果要傳遞整個數組,則可以使用.constructStack(vbr, i)
由於每個vbr(i)
都是Variant
,因此必須將其聲明為參數類型。 沒有神奇的編譯時嗅探來實現Variant
包含數組。
采用
Public Function constructStack(vbr As Variant, hr As Integer) As stack
另請參見如何在VBA過程中使用可選的數組參數? 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.