Преглед садржаја
У овом водичу ћете научити 3 различита начина да динамички истакнете ред и колону изабране ћелије у Екцел-у.
Када дуго гледате велики радни лист, може на крају изгубити појам о томе где се налази ваш курсор и које податке гледате. Да бисте тачно знали где се налазите у било ком тренутку, натерајте Екцел да аутоматски означи активни ред и колону уместо вас! Наравно, истицање треба да буде динамично и да се мења сваки пут када изаберете другу ћелију. У суштини, ово је оно што желимо да постигнемо:
Аутоматско истицање реда и колоне изабране ћелије помоћу ВБА
Ово пример показује како можете програмски означити активну колону и ред помоћу ВБА. За ово ћемо користити догађај СелецтионЦханге објекта Ворксхеет .
Прво, бришете боју позадине свих ћелија на листу тако што ћете поставити ЦолорИндек својство на 0. А затим, истичете цео ред и колону активне ћелије тако што ћете њихово својство ЦолорИндек поставити на број индекса за жељену боју.
Приватни под Радни лист_СелецтионЦханге ( БиВал Таргет Ас Ранге) Ако Таргет.Целлс.Цоунт &гт; 1 Затим изађите из Суб Апплицатион.СцреенУпдатинг = Фалсе 'Обришите боју свих ћелија Целлс.Интериор.ЦолорИндек = 0 Витх Таргет 'Означите ред и колону изабране ћелије .ЕнтиреРов.Интериор.ЦолорИндек = 38.ЕнтиреЦолумн.Интериор.ЦолорИндек = 24 Крај са Апплицатион.СцреенУпдатинг = Труе Енд СубПрилагођавање кода
Ако желите да прилагодите код својим потребама, ови мали савети могу бити корисни:
- Наш пример кода користи две различите боје приказане у горњем гиф-у - индекс боја 38 за ред и 24 за колону. Да бисте променили боју истицања , само их замените било којим кодовима Индекса боја по вашем избору.
- Да бисте добили боју реда и колоне на исти начин , користите исти број индекса боја за оба.
- Да бисте истакли само активни ред , уклоните или коментаришите овај ред: .ЕнтиреЦолумн.Интериор.ЦолорИндек = 24
- Да бисте истакли само активну колону , уклоните или коментаришите овај ред: .ЕнтиреРов.Интериор.ЦолорИндек = 38
Како додати код на ваш радни лист
Да би се код тихо извршавао у позадини одређеног радног листа, потребно је да га уметнете у прозор кода који припада том радном листу, а не у нормални модул. Да бисте то урадили, извршите ове кораке:
- У радној свесци притисните Алт + Ф11 да бисте дошли до ВБА едитора.
- У Пројецт Екплорер-у са леве стране, Видећу листу свих отворених радних свеска и њихових радних листова. Ако га не видите, користите пречицу Цтрл + Р да бисте приказали прозор Пројецт Екплорера.
- Пронађите циљну радну свеску. У свом Мицрософт Екцел-уОбјецтс , кликните двапут на лист у који желите да примените истицање. У овом примеру, то је Схеет 1 .
- У прозору кода на десној страни, налепите горњи код.
- Сачувајте датотеку као Макро-омогућена радна свеска (.клсм).
Предности : све се ради у позадини; нису потребна подешавања/прилагођавања на страни корисника; ради у свим верзијама Екцел-а.
Недостаци : постоје две суштинске мана због којих ова техника није применљива под одређеним околностима:
- Код чисти позадину боје свих ћелија на радном листу. Ако имате ћелије у боји, немојте користити ово решење јер ће ваше прилагођено обликовање бити изгубљено.
- Извршавање овог кода блокира функцију поништавања на листу и нећете моћи да поништите погрешну радњу притиском на Цтрл + З .
Означите активни ред и колону без ВБА
Најбоље што можете постићи да истакнете изабрани ред и /или колона без ВБА је Екцелово условно форматирање. Да бисте га подесили, извршите ове кораке:
- Изаберите скуп података у којем би требало да се изврши истицање.
- На картици Почетна , у Стилови групи, кликните на Ново правило .
- У дијалогу Ново правило за форматирање изаберите Користите формулу да одредите које ћелије желите формат .
- У Формат вредности где је ова формулаис труе поље, унесите једну од ових формула:
Да бисте истакли активни ред :
=CELL("row")=ROW()
Да бисте истакли активну колону :
=CELL("col")=COLUMN()
Да бисте истакли активни ред и колону :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Све формуле користе функцију ЋЕЛИЈА за врати број реда/колоне изабране ћелије.
- Кликните на дугме Формат , пребаците се на картицу Попуна и изаберите боју коју желите.
- Кликните двапут на ОК да бисте затворили оба прозора дијалога.
Ако сматрате да су вам потребна детаљнија упутства, погледајте Како да креирате правило условног форматирања засновано на формули.
За овај пример, одлучили смо се за ИЛИ формула за сенчење колоне и реда у истој боји. То захтева мање посла и погодно је за већину случајева.
Нажалост, ово решење није тако лепо као ВБА јер захтева поново ручно израчунавање листа (притиском на тастер Ф9). Подразумевано, Екцел поново израчунава радни лист тек након уношења нових података или измене постојећег, али не и када се избор промени. Дакле, изаберете другу ћелију - ништа се не дешава. Притисните Ф9 - лист се освежава, формула се поново израчунава, а истицање се ажурира.
Да би се радни лист аутоматски поново израчунао сваки пут када дође до догађаја СелецтионЦханге када се догоди, можете поставити овај једноставан ВБА код у модул кода вашег циљног листа као што је објашњено упретходни пример:
Привате Суб Ворксхеет_СелецтионЦханге( БиВал Таргет Ас Ранге) Таргет.Цалцулате Енд СубКод присиљава изабрани опсег/ћелију да се поново израчуна, што заузврат присиљава функцију ЦЕЛЛ да се ажурира и условно форматирање да одражава промена.
Предности : за разлику од претходног метода, овај не утиче на постојеће форматирање које сте применили ручно.
Недостаци : може погоршавају перформансе Екцел-а.
- Да би условно форматирање функционисало, потребно је да натерате Екцел да поново израчуна формулу при свакој промени избора (било ручно помоћу тастера Ф9 или аутоматски помоћу ВБА). Принудна прерачунавања могу успорити ваш Екцел. Пошто наш код поново израчунава избор, а не цео лист, негативан ефекат ће највероватније бити приметан само на заиста великим и сложеним радним свескама.
- Пошто је функција ЦЕЛЛ доступна у Екцел 2007 и новијим верзијама, метода ће т ради у ранијим верзијама.
Означите изабрани ред и колону користећи условно форматирање и ВБА
У случају да претходни метод знатно успорава радну свеску, можете приступити задатку другачије – уместо тога поновног израчунавања радног листа при сваком померању корисника, узмите број активног реда/колоне уз помоћ ВБА, а затим послужите тај број функцији РОВ() или ЦОЛУМН() коришћењем формула за условно форматирање.
Да постићи ово,ево корака које треба да пратите:
- Додајте нови празан лист у радну свеску и назовите га Помоћни лист . Једина сврха овог листа је да ускладишти два броја који представљају ред и колону који садрже изабрану ћелију, тако да можете безбедно да сакријете лист касније.
- Убаците доњи ВБА у прозор кода радног листа где желите да примените истицање. За детаљна упутства погледајте наш први пример. Приватни под радни лист_СелецтионЦханге( БиВал Таргет Ас Ранге) Апплицатион.СцреенУпдатинг = Фалсе Ворксхеетс( "Помоћни лист" ).Целлс(2, 1) = Таргет.Ров Ворксхеетс( "Помоћни лист").Целлс(2, 2) = Таргет.Цолумн Апплицатион.СцреенУпдатинг = Труе Енд Суб
Горњи код поставља координате активног реда и колоне на лист под називом "Помоћни лист". Ако сте свој лист назвали другачије у кораку 1, промените назив радног листа у коду у складу са тим. Број реда се уписује у А2, а број колоне у Б2.
- У циљном радном листу изаберите цео скуп података и креирајте правило условног форматирања са формулама у наставку. Упутство корак по корак је дато у горњем примеру.
А сада, хајде да детаљно покријемо три главна случаја употребе.
Како истаћи активни ред
Да бисте истакли ред у којем је тренутно постављен курсор, подесите правило условног форматирања са овимформула:
=ROW()='Helper Sheet'!$A$2
Као резултат, корисник може јасно да види који је ред тренутно изабран:
Како истаћи активну колону
Да бисте истакли изабрану колону, унесите број колоне у функцију ЦОЛУМН користећи ову формулу:
=COLUMN()='Helper Sheet'!$B$2
Сада, истакнута колона вам омогућава да удобно и без напора читате вертикалне податке фокусирајући се у потпуности на њу.
Како да истакнете активни ред и колону
Да би се изабрани ред и колона аутоматски осенчили истом бојом, комбинујте функције РОВ() и ЦОЛУМН() у једну формулу:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
Релевантни подаци се одмах стављају у фокус, тако да можете да избегнете погрешно читање.
Предности : оптимизоване перформансе; ради у свим верзијама Екцел-а
Недостаци : најдуже подешавање
Тако се истакне колона и ред изабране ћелије у Екцел-у. Захваљујем вам на читању и радујем се што ћу вас видети на нашем блогу следеће недеље!
Вежбање за преузимање
Истицање активног реда и колоне (.клсм датотека)