Подсветка строки или столбца цветом в excel для активной ячейки

Координатное выделение строки и столбца

Описание проблемы

Мне часто приходится работать с «широкими» таблицами, которые не помещаются на экран. Поэтому при перемещении влево вправо глаза теряют текущую строку. Ее приходится долго искать и перепроверять в правильную ли строку вводятся данные. Чтобы этого избежать можно подсвечивать активную строку и столбец. Сделать это удобно с помощью надстройки VBA-Excel.

Вот так работает эта функция.

Как включить подсветку текущей строки и столбца

Координатное выделение включается очень просто: перейдите на вкладку надстройки VBA-Excel и в меню Подсветка выберите Включить перекрестное выделение.

Подсветка автоматически будет работать во всех книгах и на всех листах до тех пор пока вы не нажмете команду Отключить перекрестное выделение или не закроете книгу.

Настройки выделения

Нажмите команду Настройки перекрестного выделения, чтобы открыть панель настроек.

Здесь можно указать подсвечивать ли строки и столбцы вместе или по отдельности.

Можно отдельно указать цвет заливки и шрифта.

Нажмите Сохранить и программа запомнит настройки.

Источник

Подсветка наборов строк цветом

Очень несложный (на первый взгляд) и весьма актуальный для многих трюк: подсветить чередующейся заливкой группы строк с общим значением по какому-либо столбцу. Например модели автомобилей вот в таком списке по столбцу А:

Чересстрочную заливку зеброй мы уже разбирали, разграничение наборов строк горизонтальными линиями тоже. Теперь давайте рассмотрим и такой вариант, тем более, что в нем есть пара интересных фишек даже для продвинутых Excel-пользователей.

Вариант 1. Вспомогательный столбец с формулой

Добавим к нашей таблице еще один вспомогательный столбец с формулой, которая будет определять заливать (1) или нет (0) соответствующие строки. Для начала определим номер группы:

Логика формулы проста: если содержимое текущей ячейки (A2) не равно предыдущей (A1), то мы прибавляем к предыдущему значению вспомогательного столбца единицу (F1+1), в противном случае оставляем значение, которое было ранее (F1).

Чтобы чередовать цвета к полученному значению номера группы применим функцию вычисления остатка от деления на 2:

В английской версии Excel эта формула будет выглядеть как =MOD(IF(A2<>A1;F1+1;F1);2)

И, наконец, осталось применить условное форматирование для заливки строк с 1 во вспомогательном столбце. Для этого выделяем нашу таблицу, начиная с ячейки A2 и до конца, жмем Главная — Условное форматирование — Создать правило (Home — Conditional Formatting — Create Rule) , выбираем тип правила Использовать формулу. (Use formula) и вводим простое условие:

Удостоверьтесь, что правильно ввели знаки долларов и выбрали цвет кнопкой Формат (Format) . После нажатия на ОК блоки строк по моделям будут выделены цветом.

Способ 2. Формулой массива без вспомогательного столбца

Относительно экзотический способ, использующий формулу массива в качестве критерия для условного форматирования.

Выделите список, начиная с ячейки A2 и до конца, жмем Главная — Условное форматирование — Создать правило (Home — Conditional Formatting — Create Rule) , выбираем тип правила Использовать формулу. (Use formula) и вводим вот такую формулу:

В английской версии эта формула будет, соответственно:

Здесь логика похитрее. По-сути, это формула массива, которая вычисляет номер группы (модели) в списке и определяет — четный он или нет:

  • СЧЁТЕСЛИ($A$2:$A2;$A$2:$A2) — вычисляет количество вхождений каждой модели в список, т.е. для Avensis=3, для Corolla=2 и т.д.
  • ЦЕЛОЕ(СУММ(1/СЧЁТЕСЛИ($A$2:$A2;$A$2:$A2))) — вычисляет порядковый номер для каждой модели, т.е. для Avensis=1, для Corolla=2, для Escape=3 и т.д.
  • ОСТАТ(. ;2) — вычисляет остаток порядкового номера от деления на 2, чтобы чередовать цвета для каждого блока строк, т.е. для всех строк с Avensis=0, для всех строк с Corolla=1, для все строк с Escape=1 и т.д.

Плюсы такого способа в компактности и отсутствии необходимости делать вспомогательный столбец. Минусы в том, что все формулы (а у нас еще и формула массива) в условном форматировании пересчитываются «на лету» и ощутимо тормозят Excel при большом количестве строк. Так что для больших таблиц я бы такой подход не рекомендовал.

Читайте так же:  Как сделать подсветку приборов ваз 2106 ярче

Способ 3. Макрос

Ну и, как всегда, почти любую задачу в Microsoft Excel можно решить и макросом. Нажмите сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , чтобы открыть редактор макросов. Затем вставьте новый пустой модуль через меню Insert — Module и скопируйте туда этот несложный код:

Теперь можно выделить диапазон с данными и запустить макрос сочетанием клавиш Alt+F8. Макрос запросит у пользователя номер столбца, по которому надо анализировать данные и затем отформатирует строки в выделенном диапазоне, чередуя заливку при смене значений в указанной колонке.

Источник

Координатное выделение ячейки в Excel

Рассмотрим различные способы координатного выделения ячейки в Excel: с применением макросов и с помощью условного форматирования.

Приветствую всех, уважаемые читатели блога TutorExcel.Ru.

Как часто при работе с большими таблицами данных вы теряли из виду нужный столбец или строку?
Или, например, вы находите нужную ячейку и пытаетесь определить в каком столбце или строчке она находится?

Для примера возьмем достаточно большую таблицу, в которой пользователю будет «легко» потеряться:


Допустим нас интересует данные из Статья 8 в Период 6 (или любые другие).
Пытаемся глазами найти пересечение, но быстро с этим справиться сможет далеко не каждый, да и возрастает вероятность ошибиться и получить некорректные цифры.

Поэтому при подобных проблемах с таблицами многие начинают использовать подручные средства: ведут пальцем по экрану или прикладывают лист бумаги к монитору и т.д.
На самом деле эту задачу можно решить куда проще и эффективнее программным путем.

Поэтому давайте представим что при изменении активной ячейки текущая строка и столбец выделялись бы определенным цветом, что позволило бы существенно упростить задачу поиска дынных.
Подобный способ выделения данных часто называют координатным (за схожий внешний вид) или перекрестным.

Перейдем к реализации и разберем 2 разновидности перекрестного выделения: с помощью макроса и условного форматирования.

Способ 1. Макрос

Давайте подумаем каким образом макрос должен производить перекрестное отображение данных на листе.

Во-первых, нам необходимы 2 макроса, которые будут включать или отключать опцию отображения.
Это пригодится нам для удобства работы, чтобы выделение работало исключительно в нужные моменты (при поиске) и не мешало работать в остальных (при вводе формул, создании графиков и т.д.)

Во-вторых, нам нужен сам макрос выделения строк и столбцов для ячейки. Соответственно, постоянно работает при включении опции отображения и не работает при отключенной опции.

Перейдем в редактор Visual Basic (быстрый переход с помощью комбинации клавиш Alt + F11).
Далее добавим в исходный код листа (в левой части панели выбираете нужный лист, правой кнопкой мышки щелкаете по нему и выбираете View Code) вставляем туда следующий код:

Возвращаемся в Excel. Для начала работы координатного пересечения необходимо включить опцию отображения, для этого открываем окно с макросами (сочетание клавиш Alt + F8) и запускаем макрос Coordinate_Selection_On (для отключения опции запускаем Coordinate_Selection_Off).

Все готово (не забудьте сначала запустить макрос Coordinate_Selection_On):


Из плюсов данного способа можно выделить простоту реализации, а к минусам — проблемы с отображением при наличии объединенных ячеек.

Теперь перейдем к альтернативной реализации.

Способ 2. Условное форматирование

Следующий способ базируется на 2 основных принципах: условном форматировании (которое будет подсвечивать все ячейки в строке и столбце) и свойствах функции ЯЧЕЙКА (которая позволит нам составить правило для форматирования).

Пойдем по порядку.
Выделим диапазон таблицы (в нашем примере это A1:Z35), для которого будем делать перекрестное выделение.
Далее в панели вкладок выбираем Главная -> Условное форматирование и нажимаем Создать правило:


В появившемся окне выбираем Использовать формулу для определения форматируемых ячеек и в описании правила вставляем следующую формулу:

Затем нажимаем кнопку Формат и настраиваем внешний вид выделяемых данных (цвет заливки, шрифта) по своему усмотрению.

Что нам дает функция ЯЧЕЙКА?

Мы уже сталкивались с ней, когда, например, получали имя листа в виде формулы.
Данная функция возвращает различные свойства ссылки в зависимости от параметров введенных аргументов. Поэтому формулы ЯЧЕЙКА(«строка») и ЯЧЕЙКА(«столбец») вернут нам, соответственно, номер строки и столбца текущей ячейки.
Следовательно, введенная формула выделит все ячейки таблицы, где строка (или столбец) совпадают со строкой (или столбцом) текущей ячейки, в результате после форматирования и получится перекрестное выделение.

Читайте так же:  Как подключить светильник если нет провода с заземлением

Однако условное форматирование не будет работать, если на листе не произойдет никаких изменений (передвижение активной ячейки к таковым не относится), и раскраска ячеек останется прежней.
Чтобы этого избежать напишем несложный макрос, который бы пересчитывал содержимое текущей ячейки, и в результате запускал бы обновление раскраски.
Переходим в редактор VBA и в модуль листа, где содержится таблица, добавляем следующий код:

Источник

Подсветка строки или столбца цветом в Excel для активной ячейки

Время от времени бывает удобно иметь возможность выделить (подсветить) активную строку или столбец. Решение в очень простом методе достижения этого эффекта. Мы будем использовать условное форматирование и лишь пару строк кода VBA.

Подсветка цветом строки активной ячейки в Excel

Как всем хорошо известно, с помощью условного форматирования вы можете изменить (выделить) формат ячеек, которые соответствуют определенным критериям. В нашем случае должны быть выделены только те ячейки, которые расположены в той же строке, что и активная ячейка. Исходные данные для примера будут выглядеть так, как показано на рисунке ниже:

Выберите диапазон ячеек B2:K23 так, чтобы ячейка 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 простых изменения в любом из примеров:

  1. В условном форматировании заменить функцию СТРОКА на СТОЛБЕЦ.
  2. Изменить в коде VBA-макроса свойство ActiveCell.Row на ActiveCell.Column.

Примечание. Имя исходного диапазона ячеек «АктивнаяСтрока» можно не изменять и оставить прежним как есть.

Решение изменения 1: Выберите инструмент «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Управление правилами»:

В появившемся окне «Диспетчер правил условного форматирования» выберите правило и нажмите на кнопку «Изменить правило»:

Изменяем функцию, вносим желаемые стили оформления формата, которые доступны нам по кнопке «Формат»:

И нажимаем ОК на всех открытых окнах.

Решение изменения 2: Открываем редактор VBA-кода и изменяем только лишь одно свойство для объекта ActiveCell с Row на Column:

Наслаждаемся готовым желаемым результатом:

Аналогичные действия следует выполнить и для примера 2, если там есть необходимость подсвечивать цветом столбец, а не строку на целом листе Excel.

Источник

Оцените статью
Охраны в доме нет
Adblock
detector