目前我需要以這種形式組裝兩個excel列
Redim arr (1 To 2, 1 To 7000)
我想要的結果示例
所以我是這樣處理的
Sub main()
Sheets("data").Activate
endRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim arr(1 To 2)
arr(1) = Application.Transpose(Range("A2:A" & endRow).value)
arr(2) = Application.Transpose(Range("H2:H" & endRow).value)
End Sub
但是當我這樣做時,我得到了這種陣列,我們可以用它來訪問它,就像這樣 arr (x)(x) 而不是 arr (x, x),這兩個陣列之間有什么區別?以及如何獲取陣列 arr (x, x) ?下面的方法不起作用,這是我第一次看到這樣的表格
Sub main()
Sheets("data").Activate
EndRow = Cells(Rows.Count, 1).End(xlUp).Row
ReDim arr(1 To 2, 1 To EndRow)
arr(1) = Application.Transpose(Range("A2:A" & EndRow).value)
arr(2) = Application.Transpose(Range("H2:H" & EndRow).value)
End Sub
錯誤:索引不屬于選擇
uj5u.com熱心網友回復:
您正在加載具有兩個單獨的一維陣列而不是單個二維陣列的陣列。這稱為鋸齒狀陣列。
執行此操作時,您需要先通過大型單維陣列中的哪個專案,然后是第二個單維陣列中的專案位置或 arr(1)(1) 來記錄專案位置。
第一個是說我想要位置 1 中的陣列,第二個是位置 1 中該陣列中的專案。
為了像你想要的那樣獲得二維陣列,我將從兩個二維陣列開始,然后回圈放入第三個:
Sub main()
Dim endRow As Long
endRow = Worksheets("data").Cells(Rows.Count, 1).End(xlUp).Row
Dim aArr As Variant
aArr = Worksheets("data").Range("A2:A" & endRow).Value
Dim hArr As Variant
hArr = Worksheets("data").Range("H2:H" & endRow).Value
Dim arr As Variant
ReDim arr(1 To 2, 1 To UBound(aArr, 1))
Dim i As Long
For i = 1 To UBound(aArr, 1)
arr(1, i) = aArr(i, 1)
arr(2, i) = hArr(i, 1)
Next i
Debug.Print arr(1, 1)
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/346629.html
下一篇:交換陣列的部分
