Координатное выделение строки и столбца
Описание проблемы
Мне часто приходится работать с "широкими" таблицами, которые не помещаются на экран. Поэтому при перемещении влево вправо глаза теряют текущую строку. Ее приходится долго искать и перепроверять в правильную ли строку вводятся данные. Чтобы этого избежать можно подсвечивать активную строку и столбец. Сделать это удобно с помощью надстройки VBA-Excel.
Вот так работает эта функция.
Как включить подсветку текущей строки и столбца
Координатное выделение включается очень просто: перейдите на вкладку надстройки VBA-Excel и в меню Подсветка выберите Включить перекрестное выделение.
Подсветка автоматически будет работать во всех книгах и на всех листах до тех пор пока вы не нажмете команду Отключить перекрестное выделение или не закроете книгу.
Настройки выделения
Нажмите команду Настройки перекрестного выделения, чтобы открыть панель настроек.
Здесь можно указать подсвечивать ли строки и столбцы вместе или по отдельности.
Можно отдельно указать цвет заливки и шрифта.
Нажмите Сохранить и программа запомнит настройки.
Координатное выделение ячейки в 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 и в модуль листа, где содержится таблица, добавляем следующий код: