ВБА - Филтер изведене табеле

Овај водич ће показати како се користи филтер изведене табеле у ВБА.

Заокретне табеле су изузетно моћан алат за податке програма Екцел. Заокретне табеле нам омогућавају да анализирамо и тумачимо велике количине података груписањем и сумирањем поља и редова. Можемо применити филтере на своје изведене табеле како бисмо нам омогућили да брзо видимо податке који су нам релевантни.

Прво, морамо да направимо изведену табелу за наше податке. (Кликните овде за наш ВБА водич кроз изведену табелу).

Креирање филтера на основу вредности ћелије

Можете да филтрирате у изведеној табели користећи ВБА на основу података садржаних у вредности ћелије - можемо да филтрирамо или у пољу Страница или у поље Ред (на пример у поље Добављач изнад или Поље Опер које се налази у колони Ознаке редова ).

У празној ћелији десно од изведене табеле, направите ћелију за држање филтера, а затим откуцајте податке у ћелију у коју желите да филтрирате изведену табелу.

Направите следећи ВБА макро:

1234567 Суб ФилтерПагеВалуе ()Затамните пвФлд као заокретно пољеДим стрФилтер Ас СтрингПодесите пвФлд = АцтивеСхеет.ПивотТаблес ("Заокретна табела1"). Заокретна поља ("Добављач")стрФилтер = АцтивеВоркбоок.Схеетс ("Схеет1"). Ранге ("М4"). ВалуепвФлд.ЦуррентПаге = стрФилтерЕнд Суб

Покрените макро да бисте применили филтер.

Да бисте обрисали филтер, направите следећи макро:

12345 Суб ЦлеарФилтер ()Затамни пТбл као изведену табелуПодесите пТбл = АцтивеСхеет.ПивотТаблес ("Заокретна табела1")пТбл.ЦлеарАллФилтерсЕнд Суб

Филтер ће тада бити уклоњен.

Затим можемо изменити критеријуме филтрирања тако да филтрирају ред у изведеној табели, а не тренутну страницу.

Куцање следећег макроа ће нам омогућити филтрирање у реду (имајте на уму да је заокретно поље за филтрирање сада Опер, а не Добављач).

1234567 Суб ФилтерРовВалуе ()Затамните пвФлд као заокретно пољеДим стрФилтер Ас СтрингПодесите пвФлд = АцтивеСхеет.ПивотТаблес ("ПивотТабле1"). ПивотФиелдс ("Опер")стрФилтер = АцтивеВоркбоок.Схеетс ("Схеет1"). Ранге ("М4"). ВалуепвФлд.ПивотФилтерс.Адд2 клЦаптионЕкуалс,, стрФилтерЕнд Суб

Покрените макро да бисте применили филтер.

Коришћење више критеријума у ​​изведеном филтеру

Горе наведени филтер за вредности реда можемо додати додавањем додатних критеријума.

Међутим, пошто стандардни филтер скрива редове који нису потребни, морамо да прођемо кроз критеријуме и прикажемо оне који су рекуитед, док сакривамо оне који нису потребни. Ово се постиже креирањем променљиве Арраи и коришћењем неколико петљи у коду.

1234567891011121314151617181920212223 ПодфилтерМултиплеРовИтемс ()Дим вАрраи као варијантаДим и Ас Интегер, ј Ас ИнтегерЗатамните пвФлд као заокретно пољеПодесите пвФлд = АцтивеСхеет.ПивотТаблес ("ПивотТабле1"). ПивотФиелдс ("Опер")вАрраи = Распон ("М4: М5")пвФлд.ЦлеарАллФилтерсСа пвФлдЗа и = 1 За пвФлд.ПивотИтемс.Цоунтј = 1До Вхиле ј <= УБоунд (вАрраи, 1) - ЛБоунд (вАрраи, 1) + 1Ако је пвФлд.ПивотИтемс (и). Назив = вАрраи (ј, 1) ТадапвФлд.ПивотИтемс (пвФлд.ПивотИтемс (и) .Наме) .Висибле = ТруеИзлаз ДоИначепвФлд.ПивотИтемс (пвФлд.ПивотИтемс (и) .Наме) .Висибле = ФалсеКрај Акој = ј + 1ЛоопЗатим самЗавршитиЕнд Суб

Прављење филтера на основу променљиве

Исте концепте можемо користити за креирање филтера заснованих на променљивим у нашем коду, а не на вредности у ћелији. Овог пута, променљива филтера (стрФилтер) је попуњена у самом коду (нпр: Хард-кодирано у макро).

1234567 Суб ФилтерТектВалуе ()Затамните пвФлд као заокретно пољеДим стрФилтер Ас СтрингПодесите пвФлд = АцтивеСхеет.ПивотТаблес ("Заокретна табела1"). Заокретна поља ("Добављач")стрФилтер = "ТХОМАС С"пвФлд.ЦуррентПаге = стрФилтерЕнд Суб
wave wave wave wave wave