0
我正在努力嘗試編寫這個程序。其中,我需要使用一個看起來像數組的二維數組(表中的#行)。出於某種原因,即使我可以正確地獲取行數,我仍然收到編譯錯誤:需要使用常量表達式。使用Rows.Count爲VBA中的多維數組分配維數
如果有人能給我任何幫助,將不勝感激。我不能只是給它分配一個靜態數字,因爲隨着時間的推移,表格總是會增加的,而且我知道一旦數組被構建就無法重新調整大小。
這是我的代碼,如果它會提供任何幫助。
Sub arrayToTest()
Dim rng As Range, row As Range, cell As Range, RowCount As Long, rowsinTable As Integer
Set rng = Sheets("Sheet1").Range("TestTable")
rowsinTable = rng.Rows.Count
Dim arrayTest(rowsinTable, 2) As String
RowCount = 1
For Each row In rng.Rows
arrayTest(RowCount - 1, 0) = rng.Cells(RowCount, 2)
RowCount = RowCount + 1
Next row
End Sub
我使用的測試表有3行。
FWIW - '暗淡ArrayTest中(rowsinTable,2)作爲String'(或'使用ReDim ArrayTest中的正確版本(rowsinTable,2)由於String')被標註您的陣列是一個'rowsinTable + 1' X '3'數組,因爲你似乎使用基數0 - 所以數組的大小爲'0到rowsInTable,0到2'。 – YowE3K
「你無法調整數組的大小」並不一定是正確的 - 「ReDim Preserve」語句將允許修改數組的最後一個維度而不影響數組的現有內容。所以你可以在構建數組之後,決定將2增加到3,或者將它減少到1.並且,如果你在數組上使用了「轉置」,那麼你就可以改變第一維(但是跟隨轉置現在是第二個維度),調整大小,然後再將其轉置回去。 (但是,如果你知道行數,絕對可以像你一樣做得更好!) – YowE3K