Страницы: 1
RSS
Двумерный массив констант заполнить значениями через VBA?
 
Необходимо создать массив констант в четыре строки и восемь столбцов, заполнить его значениями внутри скрипта VBA. Как это сделать правильно?
Код
Sub tst()
Dim arr_c(1 To 4) As Variant ' массив 1..4 массивов 0..7
Dim arr_d(1 To 4, 1 To 8) As Variant 'двумерный массив значений

arr_c(1) = Array("$AY$6:$CD$53", 0.9, "=стабилизация!R61C1:R150C1", "=стабилизация!R61C11:R150C11", 90, _
      "=стабилизация!R61C13:R150C13", "=стабилизация!R61C7:R150C7", "=стабилизация!R61C9:R150C9")
arr_c(2) = Array("$AY$6:$CL$53", 0.72, "=стабилизация!R61C1:R159C1", "=стабилизация!R61C11:R159C11", 99, _
       "=стабилизация!R61C13:R159C13", "=стабилизация!R61C7:R159C7", "=стабилизация!R61C9:R159C9")
arr_c(3) = Array("$AY$6:$CT$53", 0.6, "=стабилизация!R61C1:R168C1", "=стабилизация!R61C11:R168C11", 108, _
      "=стабилизация!R61C13:R168C13", "=стабилизация!R61C7:R168C7", "=стабилизация!R61C9:R168C9")
arr_c(4) = Array("$AY$6:$bv$53", 1#, "=стабилизация!R61C1:R141C1", "=стабилизация!R61C11:R141C11", 81, _
      "=стабилизация!R61C13:R141C13", "=стабилизация!R61C7:R141C7", "=стабилизация!R61C9:R141C9")
For i = 1 To 4: For j = 1 To 8: arr_d(i, j) = arr_c(i)(j - 1): Next: Next
End Sub

Т.е. как мне сразу получить готовый массив arr_d минуя костыли в виде промежуточного массива arr_c? Excel 2003.

 
Записать в диапазон листа и с него взять в массив (что не подходит, т.к. надо "заполнить его значениями внутри скрипта VBA")
Собираетесь кормить этим формулы? Может, если будет понятна конечная задача, то и решение найдется другое? (но это в другой теме)
 
Собираюсь кормить массивами свойства диаграмм в зависимости от характера поступающих в диаграммы данных. Я правильно понял, что в VBA нет стандартного механизма задания элементов массива размерностью два и больше?
 
1. Поэлементно.
2. С листа.
Больше не вспоминается )
 
Цитата
smr801 написал:
задания элементов массива размерностью два и больше?
ну почему же - можно. Создаете изначально двумерный массив, потом переопределяете его через Preserve. Только задавая размеры учитывайте, что через Preserve можно изменять только ПОСЛЕДНЮЮ размерность. Я бы показал на Вашем примере, но не улавливаю как там можно вообще сделать что-то, не заполняя поэлементно, т.к. все данные у Вас статично в коде задаются...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх