VBA Excel. Функция Filter (фильтрация массива)

    Фильтрация одномерного массива в VBA Excel с помощью функции Filter. Синтаксис и параметры функции Filter. Пример фильтрации одномерного массива.

    Функция Filter

    Filter – это функция, которая возвращает массив, содержащий строки исходного одномерного массива, соответствующие заданным условиям фильтрации.

    Примечания

    • исходный (фильтруемый) массив должен быть одномерным и содержать строки;
    • индексация возвращенного массива начинается с нуля;
    • возвращенный массив содержит ровно столько элементов, сколько строк исходного массива соответствуют заданным условиям фильтрации;
    • переменная, которой присваивается возвращенный массив, должна быть универсального типа (As Variant) и объявлена не как массив (не myArray() со скобками, а myArray без скобок).

    Функция Filter автоматически преобразует обычную переменную универсального типа, которой присваивается отфильтрованный список, в одномерный массив с необходимым количеством элементов.

    Синтаксис

    Параметры

    Параметр Описание
    sourcearray Обязательный параметр. Одномерный массив, элементы которого требуется отфильтровать
    match Обязательный параметр. Искомая строка.
    include Необязательный параметр. Значение Boolean, которое указывает:
    • True – возвращаются строки, содержащие match (значение по умолчанию);
    • False – возвращаются строки, не содержащие match.
    compare Необязательный параметр. Числовое значение (константа), указывающее тип сравнения строк. По умолчанию – 0 (vbBinaryCompare).

    Compare (значения)

    Параметр compare может принимать следующие значения:

    Константа Значение Описание
    vbUseCompareOption -1 используется тип сравнения, заданный оператором Option Compare
    vbBinaryCompare 0 выполняется двоичное сравнение (регистр имеет значение)
    vbTextCompare 1 выполняется текстовое сравнение (без учета регистра)

    Пример фильтрации

    Фильтрация списка в столбце «A» по словам, начинающимся с буквы «К», и загрузка результатов в столбец «B»:

    Пример кода VBA Excel с функцией Filter:

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    2 комментария для “VBA Excel. Функция Filter (фильтрация массива)”

    1. Наталья

      Подскажите, как обозначить фильтрацию массива по значению, скопированному из ячейки A5 другой книги?
      Значение в A5 может меняться.

      1. Евгений

        Здравствуйте, Наталья!
        В примере кода VBA Excel с функцией Filter строка 12 будет выглядеть так:

        Вторая книга (Книга2.xlsm) должна быть открыта. Замените имена книги и листа на свои.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.