Содржина
Во ова упатство, ќе научите 3 различни начини за динамичко истакнување на редот и колоната на избраната ќелија во Excel.
Кога гледате голем работен лист долго време, вие може на крајот да ја изгуби патеката каде е вашиот курсор и кои податоци ги гледате. За да знаете точно каде сте во секој момент, добијте Excel за автоматски да ги означи активните редици и колони за вас! Секако, истакнувањето треба да биде динамично и да се менува секогаш кога ќе изберете друга ќелија. Во суштина, ова е она што сакаме да го постигнеме:
Автоматско означување на редот и колоната од избраната ќелија со VBA
Ова примерот покажува како можете програмски да означите активна колона и ред со VBA. За ова, ќе го користиме настанот SelectionChange на објектот Работен лист .
Прво, ја бришете бојата на позадината на сите ќелии на листот со поставување на <Својството 1>ColorIndex на 0. А потоа, го означувате целиот ред и колона од активната ќелија со поставување на нивната особина ColorIndex на бројот на индексот за саканата боја.
Приватен под работен лист_SelectionChange ( ByVal Target As Range) Ако Target.Cells.Count > 1 Потоа излезете од Sub Application.ScreenUpdating = False 'Исчистете ја бојата на сите ќелии Cells.Interior.ColorIndex = 0 со Target 'Означете ја линијата и колоната од избраната ќелија .EntireRow.Interior.ColorIndex = 38.EntireColumn.Interior.ColorIndex = 24 Заврши со Application.ScreenUpdating = True End SubПриспособување на кодот
Ако сакате да го приспособите кодот за вашите потреби, овие мали совети може да ви бидат корисни:
- Нашиот примерок код користи две различни бои прикажани во горниот gif - индекс на боја 38 за ред и 24 за колона. За промена на бојата на нагласување , само заменете ги со шифрите на ColorIndex по ваш избор.
- За да ги обоите редот и колоната на ист начин , користете го истото број на индекс на боја и за двете.
- За да го истакнете само активниот ред , отстранете ја или коментирајте ја оваа линија: .EntireColumn.Interior.ColorIndex = 24
- За да ја истакнете само активната колона , отстранете ја или коментирајте ја оваа линија: .EntireRow.Interior.ColorIndex = 38
Како да го додадете кодот во вашиот работен лист
За кодот тивко да се извршува во позадина на одреден работен лист, треба да го вметнете во прозорецот со код што припаѓа на тој работен лист, а не во нормалниот модул. За да го направите тоа, извршете ги овие чекори:
- Во вашата работна книга, притиснете Alt + F11 за да стигнете до уредникот VBA.
- Во Project Explorer лево, Ќе видите список на сите отворени работни книги и нивните работни листови. Ако не го гледате, користете ја кратенката Ctrl + R за да го видите прозорецот Project Explorer.
- Најдете ја целната работна книга. Во својот Microsoft ExcelОбјекти папка, кликнете двапати на листот во кој сакате да примените означување. Во овој пример, тоа е Лист 1 .
- Во прозорецот Код оддесно, залепете го горниот код.
- Зачувајте ја датотеката како Работна книга со овозможена макро (.xlsm).
Предности : сè е направено во задниот дел; не се потребни прилагодувања/приспособувања од страната на корисникот; работи во сите верзии на Excel.
Недостатоци : постојат две суштински негативни страни кои ја прават оваа техника неприменлива под одредени околности:
- Кодот ја брише позадината бои на сите ќелии во работниот лист. Ако имате обоени ќелии, не користете го ова решение бидејќи вашето приспособено форматирање ќе се изгуби.
- Извршувањето на овој код ја блокира функционалноста за враќање на листот и нема да можете да вратите погрешно дејство со притискање на Ctrl + Z .
Означете активниот ред и колона без VBA
Најдоброто што можете да го добиете за да го означите избраниот ред и / или колона без VBA е условно форматирање на Excel. За да го поставите, извршете ги овие чекори:
- Изберете ја вашата база на податоци во која треба да се изврши означување.
- На картичката Дома , во <Група 1>Стилови , кликнете Ново правило .
- Во полето за дијалог Ново правило за форматирање , изберете Користете формула за да одредите кои ќелии да формат .
- Во Форматирајте ги вредностите каде оваа формулае точно полето, внесете една од овие формули:
За да означите активен ред :
=CELL("row")=ROW()
За да означите активна колона :
=CELL("col")=COLUMN()
За да се означат активен ред и колона :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Сите формули ја користат функцијата CELL за да вратете го бројот на редот/колоната на избраната ќелија.
- Кликнете на копчето Формат , префрлете се на картичката Пополнете и изберете ја бојата што ја сакате.
- Кликнете на ОК двапати за да затворите двата дијалошки прозорци.
Ако сметате дека ви требаат подетални инструкции, видете Како да креирате правило за условно форматирање засновано на формула.
За овој пример, го избравме ИЛИ формула за засенчување и колоната и редот во иста боја. Тоа бара помалку работа и е погодно за повеќето случаи.
За жал, ова решение не е толку убаво како VBA затоа што бара повторно пресметување на листот рачно (со притискање на копчето F9). Стандардно, Excel пресметува работен лист само откако ќе внесе нови податоци или ќе ги уреди постоечките, но не и кога ќе се промени изборот. Значи, избирате друга ќелија - ништо не се случува. Притиснете F9 - листот се освежува, формулата повторно се пресметува и истакнувањето се ажурира.
За да се добие работниот лист повторно да се пресметува автоматски секогаш кога настанот SelectionChange се случува, можете да го поставите овој едноставен VBA код во кодниот модул на вашиот целен лист како што е објаснето вопретходниот пример:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubКодот го принудува избраниот опсег/клетка повторно да се пресмета, што пак ја принудува функцијата CELL да се ажурира и условното форматирање да се одрази промената.
Предности : за разлика од претходниот метод, овој не влијае на постоечкото форматирање што сте го примениле рачно.
Недостатоци : може ги влоши перформансите на Excel.
- За да работи условното форматирање, треба да го принудите Excel да ја пресметува формулата повторно при секоја промена на изборот (или рачно со копчето F9 или автоматски со VBA). Присилните повторни пресметки може да го забават вашиот Excel. Бидејќи нашиот код повторно го пресметува изборот наместо цел лист, негативниот ефект најверојатно ќе биде забележлив само на навистина големи и сложени работни книги.
- Бидејќи функцијата CELL е достапна во Excel 2007 и понова верзија, методот ќе не работи во претходните верзии.
Означете ги избраните редови и колони користејќи условно форматирање и VBA
Во случај претходниот метод значително да ја забави работната книга, можете да пристапите на задачата поинаку - наместо тоа за повторно пресметување на работен лист при секое движење на корисникот, добијте го активниот број на ред/колона со помош на VBA, а потоа послужете го тој број во функцијата ROW() или COLUMN() со користење на формули за условно форматирање.
Да го постигне ова,еве ги чекорите што треба да ги следите:
- Додајте нов празен лист во вашата работна книга и именувајте го Помошен лист . Единствената цел на овој лист е да складира два броја што ги претставуваат редот и колоната што содржат избрана ќелија, за да можете безбедно да го скриете листот во подоцнежна точка.
- Вметнете го долу VBA во прозорецот со код на работниот лист каде што сакате да спроведете истакнување. За детални инструкции, ве молиме погледнете го нашиот прв пример. Приватен под Worksheet_SelectionChange( ByVal Target As Range) Application.ScreenUpdating = Лажни работни листови( "Helper Sheet" ).Cells(2, 1) = Target.Row Worksheets("Helper Sheet" ).Cells(2, 2) = Target.Column Application.ScreenUpdating = True End Sub
Горенаведениот код ги става координатите на активниот ред и колона на листот наречен „Helper Sheet“. Ако го именувавте вашиот лист поинаку во чекор 1, соодветно променете го името на работниот лист во кодот. Бројот на редот е запишан на A2, а бројот на колоната на B2.
- Во целниот работен лист, изберете ја целата база на податоци и креирајте правило за условно форматирање со долунаведените формули. Упатството чекор-по-чекор е дадено во горниот пример.
И сега, ајде детално да ги покриеме трите главни случаи на употреба.
Како да се истакне активниот ред
За да го истакнете редот каде што е поставен курсорот во моментот, поставете правило за условно форматирање со оваформула:
=ROW()='Helper Sheet'!$A$2
Како резултат на тоа, корисникот може јасно да види кој ред е моментално избран:
Како да се означи активната колона
За да се истакне избраната колона, внесете го бројот на колоната во функцијата COLUMN користејќи ја оваа формула:
=COLUMN()='Helper Sheet'!$B$2
Сега, означената колона ви овозможува удобно и без напор да читате вертикални податоци фокусирајќи се целосно на нив.
Како да се означат активниот ред и колона
За да добиете и избраната редица и колона автоматски засенчени во иста боја, комбинирајте ги функциите ROW() и COLUMN() во една формула:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
Релевантните податоци веднаш се ставаат во фокус, за да избегнете погрешно читање.
Предности : оптимизирани перформанси; работи во сите верзии на Excel
Недостатоци : најдолго поставување
Така се означува колоната и редот од избраната ќелија во Excel. Ви благодарам што прочитавте и со нетрпение очекувам да се видиме на нашиот блог следната недела!
Вежбајте работна книга за преземање
Истакнување на активниот ред и колона (датотека .xlsm)