ЛА
Людмила Андрианова

VBA не получается работать с ф-ей Array() с двумерным массивом. вопрос внутри



' option base -- на дефолте
Dim A() As Variant

ReDim A(4, 4) ' создаем 2х мерный, 0..4, 0..4
A(1) = Array(1, 3, 4, 5,1) ' и здесь начинаются косяки (out of range)

мне нужно с помощью Array() задать значения в двумерный массив.

и еще по поводу изменения размера

Dim A() As Variant
ReDim A(4, 4)
...
ReDim Preserve A(6, 6) ' меняем размер, с сохранением данных -- не меняется, ошибка
ReDim Preserve A(4, 6) ' так тоже, хотя меняем только последнюю размерность
Как правильно???

Анастасия
Анастасия

Вопрос конечно интересный.. . Не думал, что с помощью Array можно определять двумерные массивы.. .
Нашел пока одно решение - не двумерный массив, а массив масивов:

Private Sub Кнопка0_Click()
Dim A() As Variant
ReDim A(4)
A(0) = Array(0, 1, 2, 3, 4) 'массив массивов
A(1) = Array(1, 2, 3, 4, 5)
A(2) = Array(2, 3, 4, 5, 6)
A(3) = Array(3, 4, 5, 6, 7)
A(4) = Array(4, 5, 6, 7, 😎
'ReDim Preserve A(4, 4) '- ошибка!
s = ""
For i = 0 To 4
For j = 0 To 4
s = s & A(i)(j) & " "
Next
s = s & vbLf
Next
MsgBox s
End Sub

Похожие вопросы
как сложить два двумерных массива в C++
Двумерный массивы STL
C++ Двумерные массивы
Как сравнить два элемента двумерного массива в vba?
Задание по двумерным массивам.
Как сохранять двумерные массивы в С++?
Передача двумерного массива в функцию, С++
pascal abc двумерные массивы
Двумерные массивы в C++
Задача по двумерным массивам: