Как вы ReDim первое измерение в многомерном массиве? - PullRequest
0 голосов
/ 29 сентября 2019

Похоже, что я могу сделать это:

ReDim Preserve myarr(1,x)

Но не это:

ReDim Preserve myarr(x,1)

Является ли это поведение преднамеренным?Если так, как я могу обойти это?

1 Ответ

0 голосов
/ 29 сентября 2019

Сначала необходимо транспонировать массив, затем изменить его, затем снова транспонировать, чтобы он имел исходный формат.

Public Function TransArr(arr As Variant) As Variant 
    Dim x As Long, y As Long, j As Long, k As Long 
    Dim tmpArr As Variant 
        j = UBound(arr, 2) 
        k = UBound(arr, 1) 
        ReDim tmpArr(j, k) 
        For x = 0 To j 
            For y = 0 To k 
                tmpArr(x, y) = arr(y, x) 
            Next y 
        Next x 
        TransArr = tmpArr 
End Function 

Стоит отметить, что в Access-vba - метод .getrows dum, psнабор записей в массив предварительно транспонирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...