Редовни филтри закретне табеле нуде странице Прикажи све филтере извештаја, али резачи не подржавају ову функцију. Данас неки ВБА пролазе кроз све могуће комбинације резача.
Погледајте видео
Видео транскрипт
Леарн Екцел Фром, Подцаст Епизода 2106: Направите ПДФ од сваке комбинације 3 резача.
Какво сјајно питање имамо данас. Неко се јавио, желео је да зна да ли је то могуће. Тренутно имају 3 резача који воде пивот сто. Не знам како изгледа стожерна табела. То је поверљиво. Није ми дозвољено да га видим, па само претпостављам, зар не? Дакле, оно што они раде је да одаберу по једну ставку из сваког резача, а затим креирају ПДФ, а затим иду и бирају следећу ставку и креирају ПДФ, а затим следећу ставку и следећу ставку и можете замислите, са 400 комбинација резача, ово би могло потрајати заувек, и рекли су, постоји ли неки начин да се програм прође и прође кроз све опције?
Рекао сам, у реду, ево неколико квалификационих питања. Прво, нисмо на Мацу, зар не? Ни Андроид, ни Екцел за иПхоне. Ово је Екцел за Виндовс. Да, рекли су. Велики. Рекао сам, друго заиста важно питање је да желимо да изаберемо једну ствар из резача, а затим на крају другу ставку из резача, а затим другу ставку из резача. Не требају нам комбинације попут АНДИ, па АНДИ и БЕТТИ, па АНДИ и ЦХАРЛИЕ, зар не? То је напољу. Урадићу само по један предмет из сваког резача. Да да да. Тако ће то ићи. Савршено, рекао сам. Дакле, ево, реците ми ово, одаберите сваки резач, идите на СЛИЦЕР АЛАТИ, ОПЦИЈЕ и идите на СЛИЦЕР СЕТТИНГС. Управо смо ово урадили пре 2 епизоде. Зар ово није лудо? ИМЕ ЗА КОРИШЋЕЊЕ У ФОРМУЛАМА и знам да је СЛИЦЕР_РЕВИЕВЕР, СЛИЦЕР_АНТЕННА, СЛИЦЕР_ДИСЦИПЛИНЕ,у реду? Па, мислим да имам
Сада ћемо овде прећи на ВБА и, успут, осигурати да сте сачувани као клсм и да је ваша сигурност макроа подешена да дозвољава макронаредбе. Ако је сачуван као клск, верујте ми, морате да направите ФИЛЕ, СПРЕМИТЕ КАО, изгубићете сав свој посао ако га оставите као клск. Да, 99,9% прорачунских табела које користите су клск, али ова са макронаредбом неће радити. АЛТ + Ф11. Па, ево шифре.
Пронаћи ћемо три предмеморије резача, једну ставку резача и 3 опсега. За сваку од предмеморија резача поставићемо је на име које се користи у формули које сам вам управо показао у дијалошком оквиру СЛИЦЕР СЕТТИНГС. Дакле, имамо их троје. Желим да све то очистим како бих био сигуран да смо се вратили свему што је одабрано. Овај бројач ће се касније користити у имену датотеке.
У реду. Сада, овај следећи одељак овде, ДЕСНО, ИЗГРАДИО ЈЕ ТРИ СТАТИЧКЕ ПОПИСЕ СВИХ РЕЗНИХ СТАВКИ. Погледајте излаз # 2 да бисте видели зашто се та лудост морала догодити. Дакле, схватићу где је следећа доступна колона, прелазимо преко 2 из последње колоне, сетите се тога да бих касније могао да избришем ствари, а затим, за сваку СИ, ставку резача, У СЦ1.СЛИЦЕРИТЕМС, написаћемо тај натпис резача у табелу. Када завршимо са свим тим елементима за резање, схватите колико смо редова имали данас, а затим том опсегу дајте назив СЛИЦЕРИТЕМС1. Поновићемо ту целу ствар за кеш резача 2, прелазећи преко 1 колоне, СЛИЦЕРИТЕМС2 и СЛИЦЕРИТЕМС3.
Да вам покажем како то изгледа у овом тренутку. Дакле, ставићу тачку прекида управо овде и покренућемо овај код. У реду. То је било брзо. Прећи ћемо на ВБА, а овде далеко на десну страну, добићу 3 нове листе. Ове листе су све што је у резачу и видите да се зову СЛИЦЕРИТЕМС1, СЛИЦЕРИТЕМС2 и СЛИЦЕРИТЕМС3, у реду? Тога ћемо се на крају ослободити, али то нам даје нешто до чега можемо да пролазимо. Повратак на ВБА.
У реду. Провући ћемо петљу кроз све ставке у СЛИЦЕРИТЕМС1, очистити филтер за предмеморију резача 1, а затим ћемо проћи једну по једну кроз сваку ставку резача и видети да ли је ова ставка резача = до ЦЕЛЛ1.ВАЛУЕ и, опет, петљамо кроз сваку од вредности. Дакле, први пут ће то бити АНДИ, а затим БЕТТИ и, знате, и тако даље.
Фрустрирајуће је. Нисам могао да нађем начин да искључим све резаче одједном. Чак сам покушао да снимим код и одаберем један резач, а снимљени код је враћао 9 резача и укључивао један резач, у реду? Толико фрустрирајуће да нисам могао пронаћи ништа боље од тога, али нисам могао пронаћи ништа боље од тога.
Дакле, поставили смо први резач = на АНДИ. Затим пролазимо, а за други резач поставићемо = на прву ставку. За трећи резач поставите = на прву ставку.
У реду. Затим, овде доле, ОДЛУЧИТЕ АКО ЈЕ ТО ВЕЛИКА КОМБИНАЦИЈА. Морам вам објаснити зашто је то важно. Ако ми, као људи ово радимо, АНДИ, не бисмо изабрали А52, јер је очигледно сив, али макро ће бити превише глуп и изабраће А52, а затим 104, и створит ће ово празно ротациона табела. Дакле, овде постоји хиљаду могућих комбинација. Знам да постоји само 400 могућих извештаја. То ми је особа рекла, па ћемо 600 пута доћи до места где ћемо направити ПДФ овог (ружног - 04:45) извештаја.
Дакле, оно што ћу да урадим је да погледам овде на картици АНАЛИЗА - звала се ОПЦИЈЕ 2010. - и видим како је име ове стожерне табеле и желим да видим колико редова добијамо. У мом случају, ако добијем 2 реда, знам да је то извештај који не желим да извозим. Ако добијем више од 2 реда, 3, 4, 5, 6, онда знам да је то извештај који желим да извезем. Мораћете да схватите у својој ситуацији која је то.
У реду. Дакле, зато проверавамо да ли је изведена табела 2 и, то је име које је било тамо у траци, .ТАБЛЕРАНГЕ2.РОВС.ЦОУНТ> 2. Ако није> 2, не желимо да направити ПДФ, у реду? Дакле, ова изјава ИФ до ове ЕНД ИФ каже да ћемо креирати ПДФ-ове само за комбинације извештаја које имају вредности. МИФИЛЕНАМЕ, креирао сам фасциклу под називом Ц: РЕПОРТС. То је само празна фасцикла. Ц: ИЗВЕШТАЈИ. Обавезно имајте фасциклу и користите исто име фасцикле у макронаредби. Ц: ИЗВЕШТАЈИ / а име датотеке ће бити РЕПОРТ001.ПДФ. Сада, бројач који смо иницирали назад има 1 помоћу ФОРМАТ-а, што је у Екцелу еквивалентно изговарању текста бројача и 000. На тај начин ћу добити 001, затим 002, па 003, па 004. правилно ћу сортирати.Ако сам управо назвао овај ИЗВЕШТАЈ1, а затим касније имам ИЗВЕШТАЈ10 и 11, а касније и ИЗВЕШТАЈ100, то ће се све сортирати кад не припадају заједно, у реду? Дакле, креирајући име датотеке у случају да датотека постоји од задњег покретања, ми ћемо је убити. Другим речима, избришите га. Наравно, ако покушате да убијете датотеку која није тамо, испашће грешка. Дакле, ако добијемо грешку у следећем реду, то је у реду. Само наставите, али онда ресетујем проверу грешке ОН ЕРРОР ГОТО 0.Наравно, ако покушате да убијете датотеку која није тамо, они ће избацити грешку. Дакле, ако добијемо грешку у следећем реду, то је у реду. Само наставите, али онда ресетујем проверу грешке ОН ЕРРОР ГОТО 0.Наравно, ако покушате да убијете датотеку која није тамо, испашће грешка. Дакле, ако добијемо грешку у следећем реду, то је у реду. Само наставите, али онда ресетујем проверу грешке ОН ЕРРОР ГОТО 0.
Ево АКТИВНОГ ЛИСТА, ИЗВОЗ КАО ФИКСНИ ФОРМАТ, као ПДФ, ту је име датотеке, сви ти избори, а затим увећавам бројач, па ћемо тако, следећи пут кад пронађемо оног који има записе, креирати РЕПОРТ002.ПДФ . Завршите те три петље, а затим ОБРИШИТЕ СТАТИЧКЕ ЛИСТЕ. Дакле, сетићу се која смо колона били, промените величину 1 реда, 3 колоне, ЕНТИРЕЦОЛУМН.ЦЛЕАР, а затим и лепо мало поље за поруке тамо да покажете да су ствари створене. Добро. Хајде да га покренемо.
У реду. Е сад, оно што би се овде требало догодити је да ако погледамо Виндовс Екплорер, ето га. Добро. Ствара се … као, сваке секунде, добијамо 2 или 3 или 4 или више. Паузираћу ово и пустити да тече. У реду. Ту смо. Направљено је 326 извештаја. Прелистао је свих 1000 могућности и задржао само оне где постоји стварни резултат. У реду, од 9:38 до 9:42, 4 минута да урадим све то, али ипак брже него 400, у реду?
У реду. Дакле, то је макро начин да се то уради. Друга ствар која ме овде погодила је да може и не мора функционисати. Заиста је тешко рећи. Узмимо наше податке и преместићу их у потпуно нову радну свеску. ПРЕМЕСТИТЕ ИЛИ КОПИРАЈТЕ, СТВОРИТЕ КОПИЈУ, ЗА НОВУ КЊИГУ, кликните на дугме У реду, и овде ћемо користити трик који сам први пут научио од Сзилвије Јухасз - сјајног Екцел саветника из Јужне Калифорније - и ми ћемо додајте овде КЉУЧНО поље. Поље КЉУЧ је = ПРЕГЛЕДНИК & АНТЕНА & ДИСЦИПЛИНА. То ћемо копирати и убацићемо нову стожерну табелу. Кликните на дугме У реду и ми ћемо заузети то поље, КЉУЧНО поље, и преместити га на старомодне ФИЛТЕРЕ, а затим да видимо. (Отклонимо мали извештај овде са - 08:30) РЕЦЕНЗЕНТ, АНТЕНА, ДИСЦИПЛИНА и ПРИХОД, тако.
У реду, сада би обично оно што бисмо овде урадили отворили овај филтер и изабрали једну ставку из филтера, али трик из Сзилвије је тај што можемо узети ову стожерну табелу и отићи на картицу АНАЛИЗА '13 или '16. , или картицу ОПТИОНС у 2010, отворите падајући ОПТИОНС, реците ПОКАЖИ ИЗВЕШТАЈ О ФИЛТЕР СТРАНИЦАМА, ПОКАЖИТЕ СВЕ КЉУЧНЕ СТРАНИЦЕ, а оно што тренутно ради је уметање новог радног листа за сваку јединствену комбинацију КЉУЧА, вероватно 300 и неких датотека у реду? Сада, колико радних листова можете имати у радној свесци? Па, тај број се разликује на сваком рачунару и зависи од тога колико је радна свеска компликована јер је ограничена расположивом меморијом, али овде почињемо са АНДИ Б37 112. Притиснућу ЦОНТРОЛ и ову стрелицу надоле, ЈОЕ, тако .
Прелепа предност овде је у томе што када направим ФИЛЕ, ИЗВОЗИМ, НАПРАВИМ ПДФ, а затим АЛЛРЕПОРТС, на крају ћемо добити један ПДФ са свих 326 извештаја. Сада смо могли да направимо један ПДФ помоћу Адобе Ацробата, да изаберемо све ове извештаје, кликнемо десним тастером миша и КОМБИНУЈЕМ ДАТОТЕКЕ У АЦРОБАТ-у, али за то је потребна пуна верзија Ацробата, а не само Ацробат Реадер.
Дакле, овај сјајни трик помоћу СХОВ РЕПОРТ ФИЛТЕР СТРАНИЦА из Сзилвије могао би бити одлична, сјајна алтернатива ако имате довољно меморије за креирање свих верзија.
У реду. Да бисте сазнали више о ВБА, погледајте ову књигу Екцел 2016 ВБА и макрои Била Јелена и Траци Сирстад. То ће вас довести до ВБА криве учења.
У реду. Циљ је прегледати све комбинације у 3 резача и генерисати ПДФ за сваку. Користили смо мало ВБА за пролазак кроз те резаче. Сачувајте као ПДФ помоћу ВБА. Алтернативно решење тамо на крају је СТРАНИЦЕ ПРИКАЖИ ИЗВЕШТАЈ О ФИЛТРИРАЊУ ИЗВЕШТАЈА Сзилвије Јухасз, а затим извозите целу ствар у ПДФ формату.
Хеј! Желим да вам захвалим што сте навратили. Видимо се следећи пут за још једно емитовање од.
Па, ово ће бити излазак. Први пут кад сам трчао ову проклету ствар, добио сам их 1000, а сваки проклети био је Анди А52 104. Ја сам као шта се дођавола догађа? Само што нисам рекао врага.
У реду. Па, ево, пазите на овај код. Ово је код који сам имао. Рекао сам да ћу проћи кроз све филтере ЗА СВАКУ СИ У СЦ1.СЛИЦЕРИТЕМС, а затим сам то поставио = на ФАЛСЕ, а затим онај који желим, поставићу = на ТРУЕ, зар не? Звучи као сјајан, сјајан део кода, у реду?
Дакле, ево шта се дешава. Први је Анди, одлази. Бетти одлази. Цхарлие одлази. Дале. Овде ћу само притискати Ф8, Ф8, Ф8, Ф8. Дошао сам до последњег. Ово је ЈОЕ. Ускоро ћу поставити ЈОЕ = на ФАЛСЕ и гледати шта се тамо дешава у Екцелу. Бам. Једном када искључите ЈОЕ, он их поново укључује. Мислим, то смрди, Екцел, и онда бих покушао и окренуо се, шта је то, АНДИ се поново укључио и поново укључио АНДИ кад су сви остали већ укључени. Дакле, прошао је кроз … створио је 1000 ПДФ-ова, сваки смрдљиви. Био је то АНДИ А52 104. Сад је смешно. Тада није било.
У реду. Ево још једног исхода. Зашто сам се потрудио да направим листу, статичну листу, са десне стране, да бих могао да прођем кроз ту статичну листу? Па, првобитно сам прегледавао све предмете у самим резачима и то је узроковало неке погрешне резултате. Видите, овде би Анди А52 112 требао бити 0, али када сам стварно покренуо петљу, АНДИ А52 112 се појављује са шест редова. Па, то не може бити. Дакле, овде, мој код, АЛТ + Ф11, ставио сам ствар, ако је СИ1.ЦАПТИОН = АНДИ, СИ2.ЦАПТИОН = А52, СИ3 ЦАПТИОН = 112, ПА СТАНИ, зар не? Па хајде да покренемо овај код, а затим зауставимо.
Ту смо и ја ћу се вратити. Требали бисмо имати АНДИ А52 112, али кад погледам, АНДИ, то није А52, то је Д33. Шта се, дођавола, догађа, а онда се вратим овде, АЛТ + Ф11, и десним тастером кликните и кажем да желим ДОДАТИ САТ, и када ово погледам, тврди да је наслов А52, али врло јасно је Д33. Дакле, да ли је ово грешка или само кршим неко чудно правило прелиставајући колекцију од 10 предмета када се редослед тих 10 предмета непрестано мења? Изгледа да је то проблем. Стога смо кренули са статичном листом скренутом удесно.
И трећи излаз, у реду? Ово је лудо. Ако желим да снимим макро, ако желим (напишем макро - 13:35) да изаберем само једну ставку, схватите како то учинити помоћу РАЗВОЈИТЕЉА, СНИМИ МАКРО, ХОВТОЦХООСЕОНЕИТЕМФРОМСЛИЦЕР, кликните ОК и ми једноставно бирамо један ставка. ФЛО. Кликните СТОП СНИМАЊУ, а затим идемо АЛТ + Ф8, ХОВТОЦХООСЕОНЕИТЕМФРОМСЛИЦЕР, ЕДИТУЈЕМО то и, сасвим сигурно, чине ФЛО ТРУЕ, а затим све остале ФЛАСЕ. Значи да бих имао резач са 100 предмета, морали би тамо ставити 100 редова кода да пониште све остало. Изгледа невероватно неефикасно, али ту сте.
Скини докуменат
Преузмите датотеку узорка овде: Подцаст2106.клск