Доброго времени суток. Есть вопрос, как можно практично реализовать присвоение массиву значений других массивов? Если есть альтернативные варианты решения - буду рад их узнать. Пример: Есть массивы с животными, и их годовыми расходами по месяцам(1 To 12), плановыми и фактическими (0 To 1), где 0 - план, 1 - факт [vba]
Код
Dim Lion(1 To 12, 0 To 1) As Integer Dim Turtle(1 To 12, 0 To 1) As Integer Dim Giraffe(1 To 12, 0 To 1) As Integer
[/vba] Собираюсь для вывода таблицы создать массив, который будет собирать в себя эти массивы, чтобы не писать для каждого одно и тоже (такого плана?): [vba]
Код
Dim Animals(1 To 3, 1 To 12, 0 To 1)
[/vba] Первый уровень - имя массива животного, второй - месяц, третий - план\факт Как можно реализовать в этот массив? Конструкция вывода массива Animals примерно такая(это лишь приблизительный набросок, критика приветствуется): (Ai - Массив с животным, Mi - Месяц, PFi - план\факт, Pos_y - строки, Pos_x - столбцы) [vba]
Код
For Ai = 1 To 3 For PFi = 0 To 1 For Mi = 1 To 12 Cells(Pos_y, Pos_x).Value = Arr_Y(Ai, Mi, PFi) Pos_x = Pos_x + 1 Next Mi Pos_y = Pos_y + 1 Next PFi Pos_y = Pos_y + 2 Next Ai
[/vba] Вид таблицы:
Доброго времени суток. Есть вопрос, как можно практично реализовать присвоение массиву значений других массивов? Если есть альтернативные варианты решения - буду рад их узнать. Пример: Есть массивы с животными, и их годовыми расходами по месяцам(1 To 12), плановыми и фактическими (0 To 1), где 0 - план, 1 - факт [vba]
Код
Dim Lion(1 To 12, 0 To 1) As Integer Dim Turtle(1 To 12, 0 To 1) As Integer Dim Giraffe(1 To 12, 0 To 1) As Integer
[/vba] Собираюсь для вывода таблицы создать массив, который будет собирать в себя эти массивы, чтобы не писать для каждого одно и тоже (такого плана?): [vba]
Код
Dim Animals(1 To 3, 1 To 12, 0 To 1)
[/vba] Первый уровень - имя массива животного, второй - месяц, третий - план\факт Как можно реализовать в этот массив? Конструкция вывода массива Animals примерно такая(это лишь приблизительный набросок, критика приветствуется): (Ai - Массив с животным, Mi - Месяц, PFi - план\факт, Pos_y - строки, Pos_x - столбцы) [vba]
Код
For Ai = 1 To 3 For PFi = 0 To 1 For Mi = 1 To 12 Cells(Pos_y, Pos_x).Value = Arr_Y(Ai, Mi, PFi) Pos_x = Pos_x + 1 Next Mi Pos_y = Pos_y + 1 Next PFi Pos_y = Pos_y + 2 Next Ai
Space240, Приложите файл в Excel и опишите что Вы конкретно хотите. Не просто всунуть что-то куда-то, а что в итоге нужно получить. Ну и название темы тогда уж соответственно новому описанию поменяйте
Space240, Приложите файл в Excel и опишите что Вы конкретно хотите. Не просто всунуть что-то куда-то, а что в итоге нужно получить. Ну и название темы тогда уж соответственно новому описанию поменяйте_Boroda_
Не подумал, что так будет работать, сейчас опробую
Работать не хочет, Type mistmatch при присвоении YA(1) = Animal [vba]
Код
Dim Animal(1 To 12, 0 To 1) As String Dim YA(1 To 3) As String Dim Res As String Animal(1, 0) = 425 Animal(2, 0) = 375 YA(1) = Animal Res = YA(1)(1, 0) Debug.Print Res
Не подумал, что так будет работать, сейчас опробую
Работать не хочет, Type mistmatch при присвоении YA(1) = Animal [vba]
Код
Dim Animal(1 To 12, 0 To 1) As String Dim YA(1 To 3) As String Dim Res As String Animal(1, 0) = 425 Animal(2, 0) = 375 YA(1) = Animal Res = YA(1)(1, 0) Debug.Print Res
Если Вас устроил массив массивов, то все нормально. Я, прочитав Ваше первоначальное название, именно так Вас и понял и даже именно это и предложить хотел, но потом, внимательно прочитав текст темы и посмотрев под лупой картинку, очень усомнился в том, что Вам именно это нужно и потому файл-пример и попросил.
Если Вас устроил массив массивов, то все нормально. Я, прочитав Ваше первоначальное название, именно так Вас и понял и даже именно это и предложить хотел, но потом, внимательно прочитав текст темы и посмотрев под лупой картинку, очень усомнился в том, что Вам именно это нужно и потому файл-пример и попросил._Boroda_
Если вкратце, из базы собираются массивы, а потом просто годовой вывод, чтобы потом не путаться, решил сделать для каждого типа отдельный массив, вместо объединения всего в один, т.к., потом с ним будут работать другие люди, решил не усложнять: [vba]
Код
Public T1_Year(1 To 12, 0 To 1) As Integer Public T1_Week(0 To 4, 0 To 1) As Integer Public T2_Year(1 To 12, 0 To 1) As Integer Public T2_Week(0 To 4, 0 To 1) As Integer Public T2_Year_L1(1 To 12, 0 To 1) As Integer Public T2_Week_L1(0 To 4, 0 To 1) As Integer Public T2_Year_L2(1 To 12, 0 To 1) As Integer Public T2_Week_L2(0 To 4, 0 To 1) As Integer Public T2_Year_L3(1 To 12, 0 To 1) As Integer Public T2_Week_L3(0 To 4, 0 To 1) As Integer
Если вкратце, из базы собираются массивы, а потом просто годовой вывод, чтобы потом не путаться, решил сделать для каждого типа отдельный массив, вместо объединения всего в один, т.к., потом с ним будут работать другие люди, решил не усложнять: [vba]
Код
Public T1_Year(1 To 12, 0 To 1) As Integer Public T1_Week(0 To 4, 0 To 1) As Integer Public T2_Year(1 To 12, 0 To 1) As Integer Public T2_Week(0 To 4, 0 To 1) As Integer Public T2_Year_L1(1 To 12, 0 To 1) As Integer Public T2_Week_L1(0 To 4, 0 To 1) As Integer Public T2_Year_L2(1 To 12, 0 To 1) As Integer Public T2_Week_L2(0 To 4, 0 To 1) As Integer Public T2_Year_L3(1 To 12, 0 To 1) As Integer Public T2_Week_L3(0 To 4, 0 To 1) As Integer