Координатное выделение
У вас большой монитор, но таблицы, с которыми вы работаете — еще больше. И, пробегая взглядом по экрану в поисках нужной информации, всегда есть шанс «соскользнуть» взглядом на соседнюю строчку и посмотреть не туда. Я даже знаю людей, который для таких случаев постоянно держат недалеко от себя деревянную линейку, чтобы приложить ее к строке на мониторе. Технологии будущего!
А если при движении активной ячейки по листу будет подсвечиваться текущая строка и столбец? Своего рода координатное выделение примерно такого вида:
Поудобнее, чем линейка, правда?
Есть несколько способов разной сложности, чтобы реализовать такое. Каждый способ — со своими плюсами и минусами. Давайте разберем их детально.
Способ 1. Очевидный. Макрос, выделяющий текущую строку и столбец
Самый очевидный путь для решения нашей проблемы «в лоб» — нам нужен макрос, который будет отслеживать изменение выделения на листе и выделять целую строку и столбец для текущей ячейки. Также желательно иметь возможность при необходимости включать и отключать эту функцию, чтобы такое крестообразное выделение не мешало нам вводить, например, формулы, а работало только тогда, когда мы просматриваем список в поисках нужной информации. Это приводит нас к трем макросам (выделения, включения и выключения), которые нужно будет добавить в модуль листа.
Откройте лист со таблицей, в которой хотите получить такое координатное выделение. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этих трех макросов:
Dim Coord_Selection As Boolean 'глобальная переменная для вкл/выкл выделения Sub Selection_On() 'макрос включения выделения Coord_Selection = True End Sub Sub Selection_Off() 'макрос выключения выделения Coord_Selection = False End Sub 'основная процедура, выполняющая выделение Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'если выделено больше 1 ячейки - выходим If Coord_Selection = False Then Exit Sub 'если выделение выключено - выходим Application.ScreenUpdating = False Set WorkRange = Range("A6:N300") 'адрес рабочего диапазона, в пределах которого видно выделение Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow)).Select 'формируем крестообразный диапазон и выделяем Target.Activate End Sub
Измените адрес рабочего диапазона на свой — именно в пределах этого диапазона и будет работать наше выделение. Затем закройте редактор Visual Basic и вернитесь в Excel.
Нажмите сочетание клавиш ALT+F8, чтобы открыть окно со списком доступных макросов. Макрос Selection_On, как нетрудно догадаться, включает координатное выделение на текущем листе, а макрос Selection_Off — выключает его. В этом же окне, нажав кнопку Параметры (Options) можно назначить этим макросам сочетания клавиш для удобного запуска.
Плюсы этого способа:
- относительная простота реализации
- выделение — операция безобидная и никак не изменяет содержимое или форматирование ячеек листа, все остается как есть
Минусы этого способа:
- такое выделение некорректно работает в том случае, если на листе есть объединенные ячейки — выделяются сразу все строки и столбцы, входящие в объединение
- если случайно нажать клавишу Delete, то очистится не только активная ячейка, а вся выделенная область, т.е. удалятся данные из всей строки и столбца
Способ 2. Оригинальный. Функция ЯЧЕЙКА + Условное форматирование
Этот способ хотя и имеет пару недостатков, мне представляется весьма изящным. Реализовать что-либо, используя только встроенные средства Excel, минимально влезая в программирование на VBA — высший пилотаж
Способ основан на использовании функции ЯЧЕЙКА (CELL), которая может выдавать массу различной информации по заданной ячейке — высоту, ширину, номер строки-столбца, числовой формат и т.д.. Эта функция имеет два аргумента:
- кодовое слово для параметра, например «столбец» или «строка»
- адрес ячейки, для которой мы хотим определить значение этого параметра
Хитрость в том, что второй аргумент не является обязательным. Если он не указан, то берется текущая активная ячейка.
Вторая составляющая этого способа — условное форматирование. Эта крайне полезная функция Excel позволяет автоматически форматировать ячейки, если они удовлетворяют заданным условиям. Если соединить эти две идеи в одно целое, то получим следующий алгоритм реализации нашего координатного выделения через условное форматирование:
- Выделяем нашу таблицу, т.е. те ячейки, в которых в будущем должно отображаться координатное выделение.
- В Excel 2003 и более старших версиях открываем меню Формат — Условное форматирование — Формула (Format — Conditional Formatting — Formula). В Excel 2007 и новее — жмем на вкладке Главная (Home) кнопку Условное форматирование — Создать правило (Conditional Formatting — Create Rule) и выбираем тип правила Использовать формулу для определения форматируемых ячеек (Use formula)
- Вводим формулу для нашего координатного выделения:
=ИЛИ(ЯЧЕЙКА(«строка»)=СТРОКА(A2);ЯЧЕЙКА(«столбец»)=СТОЛБЕЦ(A2))
=OR(CELL(«row»)=ROW(A1),CELL(«column»)=COLUMN(A1))
Эта формула проверяет, не совпадает ли номер столбца каждой ячейки в таблице с номером столбца текущей ячейки. Аналогично со столбцами. Таким образом закрашенными окажутся только те ячейки, у которых либо номер столбца, либо номер строки совпадает с текущей ячейкой. А это и есть крестообразное координатное выделение, которого мы хотим добиться. - Нажмите кнопку Формат (Format) и задайте цвет заливки.
Все почти готово, но остался один нюанс. Дело в том, что Excel не считает изменение выделения изменением данных на листе. И, как следствие, не запускает пересчет формул и перекраску условного форматирования только при изменении положения активной ячейки. Поэтому добавим в модуль листа простой макрос, который будет это делать. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этого простого макроса:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub
Теперь при изменении выделения будет запускаться процесс пересчета формулы с функцией ЯЧЕЙКА в условном форматировании и заливаться текущая строка и столбец.
Плюсы этого способа:
- Условное форматирование не нарушает пользовательское форматирование таблицы
- Этот вариант выделения корректно работает с объединенными ячейками.
- Нет риска удалить целую строку и столбец с данными при случайном нажатии Delete.
- Макросы используются минимально
Минусы этого способа:
- Формулу для условного форматирования надо вводить вручную.
- Нет быстрого способа включить-выключить такое форматирование — оно включено всегда, пока не будет удалено правило.
Способ 3. Оптимальный. Условное форматирование + макросы
Золотая середина. Используем механизм отслеживания выделения на листе при помощи макросов из способа-1 и добавим к нему безопасное выделение цветом с помощью условного форматирования из способа-2.
Откройте лист со таблицей, в которой хотите получить такое координатное выделение. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст этих трех макросов:
Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей If Target.Count > 1 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Is Nothing Then Set CrossRange = Intersect(WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions.Delete End If End Sub
Не забудьте изменить адрес рабочего диапазона на адрес своей таблицы. Закройте редактор Visual Basic и вернитесь в Excel. Чтобы использовать добавленные макросы, нажмите сочетание клавиш ALT+F8 и действуйте аналогично способу 1.
Способ 4. Красивый. Надстройка FollowCellPointer
Excel MVP Jan Karel Pieterse родом из Нидерландов раздает у себя на сайте бесплатную надстройку FollowCellPointer(36Кб), которая решает ту же задачу, отрисовывая с помощью макросов графические линии-стрелки для подсветки текущей строки и столбца:
Красивое решение. Не без глюков местами, но попробовать точно стоит. Качаем архив, распаковываем на диск и устанавливаем надстройку:
- в Excel 2003 и старше — через меню Сервис — Надстройки — Обзор (Tools — Add-Ins — Browse)
- в Excel 2007 и новее — через Файл — Параметры — Надстройки — Перейти — Обзор (File — Excel Options — Add-Ins — Go to — Browse)
Ссылки по теме
- Что такое макросы, куда вставлять код макроса на Visual Basic
Время от времени бывает удобно иметь возможность выделить (подсветить) активную строку или столбец. Решение в очень простом методе достижения этого эффекта. Мы будем использовать условное форматирование и лишь пару строк кода VBA.
Подсветка цветом строки активной ячейки в Excel
Как всем хорошо известно, с помощью условного форматирования вы можете изменить (выделить) формат ячеек, которые соответствуют определенным критериям. В нашем случае должны быть выделены только те ячейки, которые расположены в той же строке, что и активная ячейка. Исходные данные для примера будут выглядеть так, как показано на рисунке ниже:
Выберите диапазон ячеек B2:K23 так, чтобы ячейка B2 оставалась активной.
Затем выберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Создать правило»-«Использовать формулу для форматируемых ячее». В поле «Форматировать значения, для которых следующая формула является истинной:» введите следующую формулу.
=СТРОКА(B2)=АктивнаяСтрока
Внимание: Адрес ячейки в левой части формулы B2 должен соответствовать АКТИВНОЙ ЯЧЕЙКИ выбранного диапазона в момент выделения! Посмотрите на рисунок ниже. На нем вы можете видеть, что в выбранной области одна ячейка (если вы ничего не напутали, это будет ячейка в верхнем левом углу диапазона) не окрашена (отсутствует синий фон). Эта ячейка является активной ячейкой в момент выделения диапазона. Адрес именно этой ячейки вы должны использовать при условном форматировании. Как вы можете видеть, в нашем примере это ячейка B2.
Запись СТРОКА(B2) = АктивнаяСтрока означает то, что ячейка выбранного диапазона будет отформатирована, если номер строки этой ячейки равен значению, хранящемуся в созданном имени диапазона АктивнаяСтрока.
То, что сейчас вы должны сделать, так это создать это имя и найти способ присвоить ему номер строки активной ячейки. Для начала создайте новое имя (CTRL+F3) и присвойте ему для начала просто значение ноль.
Далее вам нужно каким-то способом изменять значение, присвоенное этому имени, в зависимости от строки, в которой находится активная ячейка. Для этой цели мы будем использовать код VBA.
Запустите редактор VBA (Alt+F11) и для листа (Например, «Пример2»), в котором вы хотите подсвечивать любые строки и где создано условное форматирование, введите код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWorkbook.Names("АктивнаяСтрока").RefersTo = "=" & ActiveCell.Row
End Sub
Если вы бы хотели, чтобы строки подсвечивались цветом только при перемещении в пределах определенного диапазона, вы можете немного изменить код, который мог бы выглядеть так (для нашего Примера 1):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B2:K23")) Is Nothing Then
ActiveWorkbook.Names("АктивнаяСтрока").RefersTo = "=" & ActiveCell.Column
End If
End Sub
Окончательный результат выглядит так:
Туда где перемещается курсор автоматически подсвечивается цветом целая строка диапазона в месте нахождения активной ячейки.
Подсветка цветом столбца в Excel
Теперь для подсветки цветом целого столбца активной ячейки следует выполнить 2 простых изменения в любом из примеров:
- В условном форматировании заменить функцию СТРОКА на СТОЛБЕЦ.
- Изменить в коде VBA-макроса свойство ActiveCell.Row на ActiveCell.Column.
Примечание. Имя исходного диапазона ячеек «АктивнаяСтрока» можно не изменять и оставить прежним как есть.
Решение изменения 1: Выберите инструмент «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Управление правилами»:
В появившемся окне «Диспетчер правил условного форматирования» выберите правило и нажмите на кнопку «Изменить правило»:
Изменяем функцию, вносим желаемые стили оформления формата, которые доступны нам по кнопке «Формат»:
И нажимаем ОК на всех открытых окнах.
Решение изменения 2: Открываем редактор VBA-кода и изменяем только лишь одно свойство для объекта ActiveCell с Row на Column:
Наслаждаемся готовым желаемым результатом:
Аналогичные действия следует выполнить и для примера 2, если там есть необходимость подсвечивать цветом столбец, а не строку на целом листе Excel.
На чтение 4 мин Просмотров 205 Опубликовано 14.03.2022
Итак, мне часто задают вопрос: «Как сделать так, чтобы при выделении одной ячейки, подсвечивались еще строка и столбец, в которых находится эта ячейка».
Из-за этого я решил написать отдельную статью. Это поможет моим читателям экономить время.
Чего мы хотим добиться? Ответ на анимированном изображении ниже.
Как мы видим, при выделении одной ячейки, столбец и строка также подсвечиваются. Это очень удобно и помогает ориентироваться в данных, особенно когда вы работаете с большими таблицами. Взгляд будет всегда сфокусирован и не будет проблем с определением, например, столбца, в котором находится наша ячейка.
Итак, начнем!
Подсветка строки и столбца при выделении ячейки в Excel
Как это сделать (пошаговая инструкция):
- Щелкните на «Главная»;
- Выберите функцию «Условное форматирование» и щелкните «Создать правило…»;
- В открывшемся окошке, из списка, выберите «Использовать формулу для определения форматируемых ячеек»;
- Укажите следующую формулу: =ИЛИ(ЯЧЕЙКА(«col»)=СТОЛБЕЦ();ЯЧЕЙКА(«row»)=СТРОКА())
- Щелкните на «Формат» и установите подходящий для вас цвет и так далее;
- Подтвердите.
Итак, строка и столбец, в которых находится выделенная ячейка, должны подсвечиваться одним и тем же цветом.
Но это еще не конец. Теперь нам необходимо вставить небольшой код в VB.
Вот он:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = False Then
Application.Calculate
End If
End Sub
Ниже, я продемонстрирую вам, как поместить это в VB, чтобы все заработало.
Что, собственно, делает этот код? Он запускает функцию, которая делает выделение, каждый раз, когда вы выделяете новую ячейку. Сама по себе эта функция запускается только когда в таблице происходит изменение (значения какой-либо ячейки, например). А для нас это не очень хороший вариант.
Кроме этого, функция «IF» в коде проверяет, пытается ли пользователь что-то вставить в документ и если да, то останавливает условное форматирование, чтобы не возникало проблем.
Как правильно вставить код в Visual Basic:
- Щелкните на «Разработчик»;
- Запустите «Visual Basic»;
- В открывшемся окне Visual Basic, слева вы видите «дерево» вашего файла Excel. Если, вдруг, вы ничего не видите, нажмите CTRL + R;
- Щелкните левой кнопкой мышки два раза по названию вашей таблицы;
- Вставьте данный выше код в открывшееся окно. В случае если у вас несколько листов в файле, вам потребуется сделать это для каждого листа отдельно (открыть каждый лист в VB и вставить туда наш код);
- Щелкните на красный крест справа вверху;
Не забывайте, из-за того, что в этом файле вы будете использовать Visual Basic, вам нужно сохранить файл с соответствующим расширением.
А еще, помните ранее я сказал вам, что строка и столбец будут выделены одним цветом? Так вот, если вы все-таки хотите, чтобы они выделялись разными цветами, вот аргументы для формулы:
- =СТОЛБЕЦ()=ЯЧЕЙКА(«col»)
- =ЯЧЕЙКА(«row»)=СТРОКА()
Из-за того, что это две отдельные формулы, вы можете в функции «Формат» указать разные цвета и так далее.
Важная информация:
- Не переживайте, все то, что мы рассмотрели, не повлияет на ручное выделение, например, ячеек (разными цветами и т.д.).
- Функция «Условное форматирование» довольно ресурсозатратная штука, не забывайте об этом. Если у вас, к примеру, старенький ноутбук, из-за этой функции, при работе с большими объемами данных Excel может «тормозить».
- Как я сказал ранее, код который мы вставили в Visual Basic активирует «Условное форматирование» каждый раз, когда вы выделяете новую ячейку.
Главная » Мои надстройки »
Выделение строки и столбца при выделении ячейки
21 Ноябрь 2015 43202 просмотров
Долго держал в закромах эту надстройку — она долгое время была частью моей старой надстройки MyAddin (которая впоследствии переросла в MulTEx) — Координатное выделение строки и столбца
Надстройка пригодится тем, кто часто работает с большими таблицами, просматривая их и сопоставляя данные в строках и столбцах. Что дает эта надстройка? Она выделяет столбец и строку таблицы на пересечении выделенной ячейки, благодаря чему можно просмотреть все данные в столбце и строке активной ячейки, не перепроверяя себя лишний раз – «А в том ли столбце я смотрю данные?».
Надстройка рассчитана на пользователей Excel версий 2007 и выше. После подключения или открытия надстройки на панели появится новая вкладка: Excel-vba.ru с единственной кнопкой, по нажатии на которую появится форма:
Метод — выбор метода подсветки строки и столбца, их два:
- выделение — строка и столбец выделяются так же, как если бы вы выделяли ячейки мышкой. У этого метода есть один недостаток. Если на листе в этом режиме будут сделаны изменения(удаление значения ячейки), то отменить их будет невозможно
- условное форматирование — строка и столбец выделяются при помощи условного форматирования. Можно выбрать один из шести цветов для подсветки выделения строки и столбца. У такого подхода тоже есть недостаток. Все условное форматирование, примененное к текущему листу ранее, будет удалено
Весь лист — выделяются строка и столбец всего листа.
Вся таблица данных — выделяются строка и столбец только в пределах используемого диапазона данных.
Выбранный диапазон — выделяются строка и столбец только в пределах указанного вами диапазона. Особенность: не допускается выделение несвязанных диапазонов.
Область применения — выбирается область листа, к которой применяется координатное выделение:
- только строка — выделяется только строка активной ячейки
- только столбец — выделяется только столбец активной ячейки
- строка и столбец — выделяется строка и столбец на пересечении активной ячейки
Отменить Координатное выделение — отменяет примененное координатное выделение.
Внимание! Координатное выделение действует во всех открытых книгах во всех листах до тех пор, пока вы не отключите его через пункт «Отменить координатное выделение».
Важно! При примененном координатном выделении невозможно скопировать выделенный диапазон, однако можно удалить значение активной ячейки (будет удалено только значение одной ячейки, расположенной на пересечении строки и столбца).
Скачать надстройку:
ExcelVBA_KoordSel.zip (49,5 KiB, 5 625 скачиваний)
В архиве расположен файл надстройки. Прежде чем установить надстройку, необходимо её распаковать из архива на жесткий диск, после чего установить. Как установить надстройку: Установка надстроек
Надстройка распространяется бесплатно и с открытыми исходными кодами — смотрите, изучайте, меняйте под себя.
Самый важный момент для тех, кого не устроит цвет выделения по умолчанию: чтобы изменить цвет выделения ячеек через условное форматирование, необходимо перейти в модуль mKoordSelection, найти вверху строку
Public Const lKS_FC_Color As Long = 10921638
и заменить число 10921638 на числовой код нужного цвета заливки. Подобрать нужный цвет можно следующим образом:
- назначаем заливке любой ячейки нужный цвет
- выделяем эту ячейку и выполняем код:
Sub GetActiveCellColor() MsgBox ActiveCell.Interior.Color, vbInformation, sAPP_NAME End Sub
этот код так же есть внутри надстройки, поэтому его можно вызвать просто через Alt+F8
Изменить цвет выделения методом Обычного выделения нельзя. Это ограничение самого Excel. Можно изменить только изменением цветовых схем Windows.
Статья помогла? Сделай твит, поделись ссылкой с друзьями!
Conditional Formatting generally checks the value in one cell and applies formatting over the other cells. A great application of conditional formatting is highlighting the entire row or multiple rows based on a cell value and condition provided in the formula.
It is very helpful because for a data set with tons of value in it becomes cumbersome to analyze just by reading the data. So, if we highlight a few rows based on some conditions, it becomes easier for the user to infer from the data set. For example, in a college, some students have been blacklisted due to some illegal activities. So, in the Excel record the administrator can highlight the rows where these students records are present.
In this article we are going to see how to highlight row(s) based on cell value(s) using a suitable real time example shown below :
Example : Consider a company’s employees data is present. The following table consists of data about the project(s) which has been assigned to employees, their ages and ID. An employee can work on multiple projects. The blank cell in project denotes that no project has been assigned to that employee.
Highlighting the Rows
1. On the basis of text match :
Aim : Highlight all the rows where Employee name is “Srishti”.
Steps :
1. Select the entire dataset from A3 to D14 in our case.
2. In the Home Tab select Conditional Formatting. A drop-down menu opens.
3. Select New Rule from the drop-down. The dialog box opens.
4. In the New Formatting Rule dialog box select “Use a Formula to determine which cells to format” in the Select a Rule Type option.
5. In the formula box, write the formula :
=$B2="Srishti" $ is used to lock the column B, so that only the cell B is looked starting from Row 2
The formula will initially check if the name “Srishti” is present or not in the cell B2. Now, since cell B is locked and next time checking will be done from cell B3 and so on until the condition gets matched.
6. In the Preview field, select Format and then go to Fill and then select an appropriate color for highlighting and click OK
7. Now click OK and the rows will be highlighted.
Highlighted Rows
2. Non-text matching based on number :
Aim : Highlight all the rows having age less than 25.
Approach :
Repeat the above steps as discussed and in the formula write :
=$C3<25
Highlighted Rows
3. On the basis of OR/AND condition :
OR, AND are used when we have multiple conditions. These are logical operators which work on True value.
AND : If all conditions are TRUE, AND returns TRUE.
OR : At least one of the conditions needs to be TRUE to return TRUE value.
Aim : Highlight all the rows of employees who are either working on Project 1 or Project 4.
The project details are in column D. So, the formula will be :
=OR($D3="P-1",$D3="P-4")
Aim : Suppose employee Rishabh has completed the project P-3. The administrator is asked to highlight the row and keep a record of projects which are finished.
The name is in column B and the project details is in column D. The formula will be :
=AND($B3="Rishabh",$D3="P-3")
Highlighted Row
4. On the basis of any blank row :
Aim : Check if there is/are any blank row(s). If exist(s), then highlight it.
The project details is in column D. We will use the COUNTIF( ) function to check for the number of blank records. The formula will be :
=COUNTIF($A3:$D3,"")>0 "" : Denotes blank
The above formula checks all the columns one by one and sees if there is at least one blank row. If the formula value is greater than zero then highlighting will be done else COUNTIF will return FALSE value and no highlighting will be done.
5. On the basis of multiple conditions and each condition having different color :
Aim : Suppose the company wants to distinguish the employees based on their ages. The employees whose age is more than 25 are senior employees and whose age is more than 20 but less than or equal to 25 are junior developers or trainees. So, the administrator is asked to highlight these two categories with different colors.
Implementation :
In the Formula Field write the formula :
=$C3>25
This will highlight all the rows where age is more than 25.
Again in the Formula Field write the formula :
=$C3>20
This will highlight all the rows greater than 20. It will in fact change the color of the rows where age is greater than 25. Since, if a number is greater than 20 then definitely it is greater than 25. So, all the cells having age more than 20 will be highlighted to the same color.
This creates a problem as our goal is to make two separate groups. In order to resolve this we need to change the priority of highlighting the rows. The steps are :
- Undo the previous steps using CTRL+Z.
- Select the entire dataset.
- Go to Conditional Formatting followed by Manage Rules.
- In the Manage Rule dialog box :
The order of the condition needs to be changed. The condition at the top will have more priority than the lower one. So, we need to move the second condition to the top of the first one using the up icon after selecting the condition.
- Now click on Apply and then OK.
It can be observed that the rows are now divided into two categories : The yellow color is for the senior level employees and the green color is for junior employees and trainees in the company on the basis of their ages.
Нашёл пример на одном форуме, чуть подправил.
В модуль книги:
[vba]
Код
Private Sub Workbook_Open()
NoEvents = Not Sheets(1).CheckBox1.Value
End Sub
[/vba]
В модуль контролируемого (первого в данном случае) листа:
[vba]
Код
Option Explicit
Private Sub CheckBox1_Click()
NoEvents = Not CheckBox1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim addr As String
Dim x As Variant
Dim rng, c, r, cll As String
If NoEvents Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
addr = ActiveCell.Address()
x = Split(addr, «$»)
c = x(1)
r = x(2)
rng = c & «:» & c & «,» & r & «:» & r
Range(rng).Select
cll = c & r
Range(cll).Activate
End Sub
[/vba]
В стандартный модуль:
[vba]
Код
Public NoEvents As Boolean
[/vba]
На листе расположен чекбокс, включающий весь механизм.
Будут подсвечиваться строки при изменении выделения ячейки.