У меня есть рабочий лист с этим типом структуры (есть несколько столбцов в реальном листе, но не много):Excel VBA Место значения в многомерном массиве
ColumnAValue1 ColumnBValue1 23
ColumnAValue1 ColumnBValue1 45
ColumnAValue1 ColumnBValue1 2.4
ColumnAValue1 ColumnBValue2 1
ColumnAValue1 ColumnBValue2 3
ColumnAValue2 ColumnBValue1 5
ColumnAValue2 ColumnBValue1 6
ColumnAValue2 ColumnBValue1 7
ColumnAValue2 ColumnBValue2 355
ColumnAValue2 ColumnBValue2 221
И я хочу, чтобы получить средние, номера позиций и отклонения для каждой комбинации (например, ColumnAValue1 ColumnBValue1 будет в среднем 23, 45 и 2,4). Поэтому я думал, что получение всех данных в массиве, или в коллекции или в словаре (я не знаю, существует ли что-то вроде «Многомерного словаря»). Я хотел закончить с многомерным массивом (или коллекцией) со структурой, подобной этим:
AllData(
ColumnAValue1(
ColumnBValue1(23,45,2.4)
ColumnBValue2(1,3)
)
ColumnAValue2(
ColumnBValue1(5,6,7)
ColumnBValue2(355,221)
)
)
Я знаю, как получить уникальные значения из столбцов.
Мои два вопроса: 1) Как создать массив (или коллекции) с соответствующими ключами (ColumnAValue1 и ColumnAValue2 для первого Dimention и ColumnBValue1 и ColumnBValue2 для второго), и 2) затем проведите все мои данные и значения «место» в соответствующем подмассиве.
Wow! Он делает то, что я просил! Все еще пытаюсь получить логику кода, но изучение c в окнах часов (как вы сказали) выглядит великолепно. Я поражен и очень благодарен. Я застрял четыре дня с этим, прежде чем сдаваться и спрашивать здесь ... – CMArg
@GSerg Между словарем и массивом, который является более предпочтительным подходом в этом случае. Ищите свое мнение в качестве энтузиаста, чтобы учиться на своем ценном опыте и опыте. – skkakkar
@skkakkar Это вопрос личных предпочтений. Я обычно использую 'Collection', потому что это внутренний класс, и я знаю, что он будет доступен. Использование словаря будет более чистым в коде, но это зависит от внешней библиотеки - тогда опять-таки библиотека, вероятно, будет присутствовать в любой системе, где вы запускаете Excel, - затем снова прочитайте [комментарии ниже этого ответа] (http : //stackoverflow.com/a/5702529/11683). – GSerg