我有一個excel工作簿,我正在處理大量數據。在這一點上大約有5000列和1000行,但這會增長。我已經定義和數組以下列方式將整列數據分配給vba中的數組的特定列
ReDim arr(1 To numRows, 1 To lastcol3)
如果我以下列方式使用雙for循環,我可以填充整個陣列和它的作品:
For r = 1 To lastcol3
For i = 1 To numRows
arr(i, r) = ws1.Cells(i, 11)
Next
Next
其中WS1是在工作表問題和11是我想從中獲取數據的數據列(每個r的值都有變化)。此方法可行,但需要花費大量時間,因爲它需要遍歷每行數據。
我想知道是否有一種方法,對於每個r值,將列11分配給數組中的相應列「r」。這將確保代碼只需要通過r循環,而不是我?
我在網上搜索了很多,但似乎無法找到一種方法來定義數組中的特定列,並使其等於一系列數據。
如果您需要進一步澄清或代碼的副本,請讓我知道。
警告如果要在使用保留選項設置對數組進行重新映射時保留信息,則只能調整數組的最後列出的維度。這個問題對你來說可能有用也可能沒用,但是我想我會提到它,因爲我遇到了這個問題。 –
有很多關於**加載範圍值到內存**的帖子,無需定義大小。你可以像'Dim oValues as Variant:oValues = ActiveSheet.UsedRange.Value'這樣的操作,將所有使用範圍的值(包括空值)加載到內存中。使用'LBound/UBound(oValues,1/2)'檢索邊界:1:rows,2:cols – PatricK