У меня есть двумерный массив:
Dim twod_array() As Variant
, который я хочу сохранить значения из двух других массивов: например:
Dim arrayone As Variant
arrayone = (1, 2, 3)
Dim arraytwo As Variant
arraytwo = (4, 5, 6)
Я хочу циклически просмотреть каждый элемент вышемассивы и добавьте их следующим образом:
Dim count As Long
count = 0
ReDim Preserve twod_array(1,0) // initial sizing
for i = 0 To UBound(arrayone)
for j = 0 To UBound(arraytwo)
twod_array(0,count) = arrayone(i)
twod_array(1,count) = arraytwo(j)
count = count + 1
ReDim Preserve twod_array(1, count) // dynamic resizing (doesnt work)
Next j
Next i
Я знаю, что в какой-то момент я должен переопределить 2D-массив, который, я полагаю, я могу сделать следующим образом:
ReDim Preserve twod_array(1, count)
1позволяет мне указать 2 элемента в x-измерении, и счет увеличивается, потому что я не знаю, сколько элементов будет в каждом массиве one-d (я просто установил их равными трем в этом примере)
По какой-то причине я могу только вывести значения twod_array (0,0) в twod_array (1,0), а остальные значения не заданы. Я подозреваю, что это связано с тем, как я использовал ReDim
например, сейчас я получаю только:
twod_array(0,0) = 1
twod_array(1,0) = 4
, но не:
twod_array(0,1) = 1
twod_array(1,1) = 5
вместо этого я получаю:
twod_array(0,1) = //blank
twod_array(1,1) = //blank
Может кто-нибудь помочь мне понять, почему мой код неправильно изменяет размеры 2D-массива, чтобы я мог выводить все элементы, которые он собирает?