Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / не могу занести значения в двухмерный динамический массив / 3 сообщений из 3, страница 1 из 1
24.01.2008, 11:44:31
    #35084197
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу занести значения в двухмерный динамический массив
Подскажите, почему не работает следующий код?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Sub RxStatProc()

'заполнение динамического массива, вывод значений на лист
Dim arr_r As Integer            ' номер строки в массиве
Dim arr_c As Integer            ' номер столбца в массиве



Dim RowCntr As Single  ' всего строк
Dim ColCntr As Single  ' всего колонок
Dim MyArr() As Variant   ' объявил динамический массив

Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
RowCntr = Selection.Rows.Count
ColCntr = Selection.Columns.Count

Debug.Print RowCntr
Debug.Print ColCntr

arr_r =  0 
arr_c =  0 

ReDim MyArr( 0  To arr_r,  0  To arr_c)
' определил размерность динамического массива

For arr_r =  0  To RowCntr -  1 
    For arr_c =  0  To ColCntr -  1 
    ReDim Preserve MyArr(arr_r, arr_c)
    ' переопределил границы динамического массива, сохранив значения существующих элементов
    MyArr(arr_r, arr_c) = ActiveCell.Offset(arr_r, arr_c).Value
    Debug.Print MyArr(arr_r, arr_c)
    Next arr_c
Next arr_r


' вывод массива
Worksheets( 1 ).Add
Range("A1").Select
For i =  0  To UBound(MyArr,  1 )
    For k =  0  To UBound(MyArr,  2 )
    ActiveCell.Offset(i, k).Value = MyArr(i, k)
    Next k
Next i
End Sub

Затыкается на вводе второй строки массива.
Помогите разъяснением, плиз.

З.Ы. Я выполню задачу через другое место, но блин интересно, где засада с двухмерными динамическими массивами.
...
Рейтинг: 0 / 0
24.01.2008, 12:27:33
    #35084399
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу занести значения в двухмерный динамический массив
If you use the Preserve keyword, you can resize only the last array dimension and you can't change the number of dimensions at all. For example, if your array has only one dimension, you can resize that dimension because it is the last and only dimension. However, if your array has two or more dimensions, you can change the size of only the last dimension and still preserve the contents of the array.
...
Рейтинг: 0 / 0
24.01.2008, 12:34:34
    #35084430
evgenius_b
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу занести значения в двухмерный динамический массив
Thnx.
Сразу в справке не заметил.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / не могу занести значения в двухмерный динамический массив / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]