Тхе ВБА функција филтера омогућава вам брзо филтрирање низова. Приликом филтрирања низова потребно је узети у обзир неколико поставки. О њима ћемо расправљати у наставку.
Филтер - подударање
Подразумевано, функција ВБА филтера ће филтрирати низ за подударања. У доњем примеру ћемо филтрирати низ за подударања са „Смитх“.
1234567891011121314 | Подфилтер_подударања ()'Дефине АрраиДим стрНамес Ас ВариантстрНамес = Арраи ("Стеве Смитх", "Сханнон Смитх", "Риан Јохнсон")'Низ филтераДим стрСубНамес Ас ВариантстрСубНамес = Филтер (стрНамес, "Смитх")'Броји филтрирани низМсгБок "Пронађено" & УБоунд (стрСубНамес) - ЛБоунд (стрСубНамес) + 1 & "имена."Енд Суб |
Неколико важних тачака:
- Променљиву филтрираног низа треба декларисати као варијанту типа података како би се избегло дефинисање величине низа.
- Подразумевано, функција Филтер разликује велика и мала слова. Дакле, филтрирање „ковача“ дало би другачији резултат од „Смита“. У наставку ћемо вам показати како да промените ову поставку.
Филтер - Није осетљив на велика и мала слова
Подразумевано, ВБА разликује велика и мала слова. То значи да „ковач“ није исто што и „Смит“. Ово важи за функцију филтера, као и за све (већина?) Других ВБА функција или поређења.
Лично, никада не желим да ВБА разликује велика и мала слова, па увек додајем Оптион Цомпаре Тект на врх свих својих модула кода. Опција Упореди текст каже ВБА да занемарује велика и мала слова тако да не разликује велика и мала слова:
1 | Опција Упореди текст |
Додавање опције Упореди текст на врх вашег модула учиниће функцију филтера неосетљивом. Алтернативно, можете рећи самој функцији филтера да не разликује велика и мала слова помоћу аргумента вбТектЦомпаре:
1 | стрСубНамес = Филтер (стрНамес, "смитх",, вбТектЦомпаре) |
Потпуни пример:
1234567891011121314 | Под филтер_МатцхЦасе ()'Дефине АрраиДим стрНамес Ас ВариантстрНамес = Арраи ("Стеве Смитх", "Сханнон Смитх", "Риан Јохнсон")'Низ филтераДим стрСубНамес Ас ВариантстрСубНамес = Филтер (стрНамес, "смитх",, вбТектЦомпаре)'Броји филтрирани низМсгБок "Пронађено" & УБоунд (стрСубНамес) - ЛБоунд (стрСубНамес) + 1 & "имена."Енд Суб |
Филтер - не подудара се
Функција филтера такође се може користити за идентификацију ставки низа које НЕМОЈ подударају се са унетим критеријумима постављањем аргумента Инцлуде на ФАЛСЕ:
1 | стрСубНамес = Филтер (стрНамес, "Смитх", Фалсе) |
Потпуни пример:
1234567891011121314 | Под филтер_НоМатцх ()'Дефине АрраиДим стрНамес Ас ВариантстрНамес = Арраи ("Стеве Смитх", "Сханнон Смитх", "Риан Јохнсон")'Низ филтераДим стрСубНамес Ас ВариантстрСубНамес = Филтер (стрНамес, "Смитх", Фалсе)'Броји филтрирани низМсгБок "Пронађено" & УБоунд (стрСубНамес) - ЛБоунд (стрСубНамес) + 1 & "имена."Енд Суб |
Функција филтера
Функција ВБА филтера враћа подскуп Арраи испорученог низа низова.
Синтакса функције филтера је:
Филтер (изворни низ, подударање, [укључи], [упореди])
Аргументи функције су:
- СоурцеАрраи - Оригинални низ за филтрирање
- Утакмица - Низ за тражење
- [Укључи] - ОПЦИОНО ТРУЕ (Враћа подударања), ФАЛСЕ (Враћа елементе који се не подударају)
- [Упоредити] - ОПЦИОНО вбБинариЦомпаре - бинарно поређење, вбТектЦомпаре - поређење текста, вбДатабасеЦомпаре - поређење базе података