Фильтрация 2D-массивов в Excel VBA

Используя Excel и VBA, мне нужен совет о том, как лучше всего фильтровать данные в массиве (таким же образом, как можно использовать сводную таблицу ). ] строго с использованием VBA. Я создаю пользовательскую форму, которая будет принимать некоторые решения по данным на основе существующих данных. Я могу достаточно хорошо представить, как это сделать, но я не очень разбираюсь в программировании на VBA.

Вот пример.

A       B       C
bob     12      Small
sam     16      Large
sally   1346    Large
sam     13      Small
sally   65      Medium
bob     1       Medium

Чтобы получить данные из массива, я мог бы использовать

Dim my_array As Variant

my_array = Range("A1").CurrentRegion

Теперь я знаком с перебором 2D-массивов, но мне было интересно:какой самый эффективный способ фильтрации 2D-массива data(без многократного перебора массива )?

Например, как мне получить, можно сказать, получить такие данные:

data_for_sally As Variant 'rows with sally as name in ColA
data_for_sally_less_than_ten As Variant ' all rows with sally's name in ColA and colB < 10
data_for_all_mediums as Variant ' all rows where ColC is Medium

Предложения? Я мог бы решить это с помощью множества пользовательских функций и циклов, но я подумал, что должен быть лучший способ. Спасибо.

5
задан Jean-François Corbett 6 May 2012 в 17:55
поделиться