Координатное выделение
У вас большой монитор, но таблицы, с которыми вы работаете — еще больше. И, пробегая взглядом по экрану в поисках нужной информации, всегда есть шанс «соскользнуть» взглядом на соседнюю строчку и посмотреть не туда. Я даже знаю людей, который для таких случаев постоянно держат недалеко от себя деревянную линейку, чтобы приложить ее к строке на мониторе. Технологии будущего!
А если при движении активной ячейки по листу будет подсвечиваться текущая строка и столбец? Своего рода координатное выделение примерно такого вида:
Поудобнее, чем линейка, правда?
Есть несколько способов разной сложности, чтобы реализовать такое. Каждый способ — со своими плюсами и минусами. Давайте разберем их детально.
Способ 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
Если на листе имеется несколько данных столбцов и строк, были ли у вас отображены, когда вы активируете ячейку, ее относительные столбец и строка выделяются? Например, щелкните F11, и столбец F и строка 11 будут выделены одновременно, как показано на скриншоте ниже. В этой статье представлены быстрые приемы, которые помогут вам выделить активную ячейку в Excel с помощью перекрестия.
Перекрестное выделение активной ячейки с помощью VBA
Выделите активную ячейку перекрестием с помощью Kutools for Excel
Перекрестное выделение активной ячейки с помощью VBA
В Excel нет встроенной функции, которая может помочь вам выделить активную ячейку перекрестием, но здесь я представляю VBA, который поможет вам перекрестно выделить строку и столбец активной ячейки.
1. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
2. Затем в Проекты под застройку панели, дважды щелкните лист, на котором вы хотите применить этот VBA, а затем скопируйте и вставьте под кодом VBA в нужный скрипт. Смотрите скриншот:
Наконечник: Если панель проекта скрыта, щелкните Вид > Обозреватель проекта in Microsoft Visual Basic для приложений окно для его отображения.
VBA: перекрестие выделяет активную ячейку.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'UpdatebyExtendoffice6/1/2016
Application.ScreenUpdating = False
With Target
.Worksheet.Cells.Interior.ColorIndex = 0
.EntireRow.Interior.Color = vbYellow
.EntireColumn.Interior.Color = vbYellow
End With
Application.ScreenUpdating = True
End Sub
3. Затем сохраните и закройте VBA, и теперь, когда вы активируете ячейку, ее относительная строка и столбец выделяются.
Если вы хотите выделить только активную ячейку, вы можете использовать следующий VBA.
VBA: выделить активную ячейку, которую вы выбрали
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'UpdatebyExtendoffice6/1/2016
Application.ScreenUpdating = False
Target.Worksheet.Cells.Interior.ColorIndex = 0
Target.Interior.Color = vbYellow
Application.ScreenUpdating = True
End Sub
Внимание: В приведенных выше кодах VBA ColorIndex может меняться по вашему желанию.
Выделите активную ячейку перекрестием с помощью Kutools for Excel
Если вы не знакомы с VBA, вы можете попробовать применить Kutools for ExcelАвтора Макет для чтения утилита для быстрого выделения активной ячейки перекрестием.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
Нажмите Кутулс > Макет для чтения для Макет для чтения утилита. Смотрите скриншот:
Примечание:
1. Нажмите Кутулс > Макет для чтения еще раз, чтобы отключить эту утилиту.
2. Нажмите Кутулс > Макет для чтения > Чтение настроек макета указать нужные формы, стили и цвета в Чтение настроек макета диалог. Смотрите скриншот:
Наконечник: Эта утилита применима ко всей книге.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (2)
Оценок пока нет. Оцените первым!
Цветовая карта ячеек
Цветовая карта ячеек – группа инструментов, для работы с данными и выделения их цветов в зависимости от типа данных
- цветовая карта ячеек
- выделение защищенных ячеек
- сортировка по цвету
- перекрестное выделение цветом
Цветовая карта ячеек
Инструменты для определения типа данных в ячейках рабочего листа Excel. Каждый тип данных подсвечивается своим цветом.
Выделение защищенных ячеек
Инструменты для определения в выделенном диапазоне, ячеек у которых включена “Защита” ячейки.
Сортировка по цвету
Инструменты для сортировки данных в зависимости от заливки цвета в ячейках данных рабочего листа Excel.
Перекрестное выделение цветом
Инструмент для навигации по данным, с подсветкой строки, столбца или строки и столбца одновременно.
Настройки перекрестное выделение цветом
В перекрестном выделении можно настроить:
- выделение только строки или столбца
- цвета заливки и цвета шрифта выделения ячеек
Применив цвет к чередующимся строкам или столбцам (это часто называют цветными полосами), можно облегчить восприятие данных на листе. Чтобы отформатировать чередующиеся строки или столбцы, можно быстро применить один из встроенных форматов таблицы. Если воспользоваться этим методом, то при добавлении новых строк или столбцов к ним автоматически будет применяться соответствующая заливка.
Вот как это сделать:
-
Выделите диапазон ячеек, которые нужно отформатировать.
-
На вкладке Главная выберите команду Форматировать как таблицу.
-
Выберите стиль таблицы, в котором применяется заливка с чередованием строк.
-
Чтобы вместо строк применить заливку к столбцам, выделите таблицу, откройте вкладку Конструктор, снимите флажок Чередующиеся строки и установите флажок Чередующиеся столбцы.
Совет: Если вы хотите сохранить стиль с чередованием, но убрать функциональность таблицы, выберите команду Преобразовать в диапазон. В этом случае при добавлении строк и столбцов к ним не будет автоматически применяться форматирование с цветными полосами, но его можно применять вручную с помощью команды Формат по образцу.
Применение полос к строкам или столбцам с помощью условного форматирования
Применить особый формат к определенным строкам или столбцам можно также с помощью правила условного форматирования.
Вот как это сделать:
-
На листе выполните одно из указанных ниже действий.
-
Чтобы применить затенение к определенному диапазону ячеек, выберите ячейки, которые необходимо отформатировать.
-
Чтобы применить затенение ко всему листу, нажмите кнопку Выделить все.
-
-
На вкладке Главная нажмите кнопку Условное форматирование и выберите команду Создать правило.
-
В списке Выберите тип правила выберите пункт Использовать формулу для определения форматируемых ячеек.
-
Чтобы применить цвет к чередующимся строкам, в поле Форматировать значения, для которых следующая формула является истинной введите формулу =ОСТАТ(СТРОКА();2)=0.
Чтобы применить цвет к чередующимся столбцам, введите формулу =ОСТАТ(СТОЛБЕЦ();2)=0.
Эти формулы определяют, является ли строка (или столбец) четной или нечетной, чтобы можно было применить соответствующий цвет.
-
Нажмите кнопку Формат.
-
В окне Формат ячеек откройте вкладку Заливка.
-
Выберите цвет и нажмите кнопку ОК.
-
Выбранный цвет показан в поле Образец. Нажмите кнопку ОК или выберите другой цвет.
Советы:
-
Вот как можно изменить правило условного форматирования: щелкните одну из ячеек, к которым оно применяется, на вкладке Главная последовательно выберите команды Условное форматирование > Управление правилами, нажмите кнопку Изменить правило и внесите необходимые изменения.
-
Чтобы удалить условное форматирование из ячеек, выделите их и на вкладке Главная последовательно выберите команды Очистить > Очистить форматы.
-
Чтобы скопировать условное форматирование в другие ячейки, щелкните одну из тех ячеек, к которым оно применено, на вкладке Главная нажмите кнопку Формат по образцу и щелкните ячейки, которые хотите отформатировать.
-
Нужна дополнительная помощь?
MulTEx »
1 Май 2011 33428 просмотров
Координатное выделение строки и столбца
Данная функция является частью надстройки MulTEx
Вызов команды:
MulTEx -группа Специальные —Координатное выделение
Данная команда пригодится тем, кто часто работает с большими таблицами, просматривая их и сопоставляя данные в строках и столбцах. Делает она следующее: выделяет столбец и строку таблицы на пересечении выделенной ячейки, благодаря чему можно просмотреть все данные в столбце и строке активной ячейки, не сверяясь лишний раз — «А в том ли столбце я смотрю данные?»
Для настройки команды необходимо перейти на вкладку MulTEx -группа Специальные —Координатное выделение. После нажатия на большую иконку появится основная форма настроек:
Метод — выбор метода подсветки строки и столбца:
-
Выделение — строка и столбец выделяются обычным выделением. Если применен данный вид выделения, то при нажатии Delete будет удалено значение только активной ячейки (если выбрана область выделения «Строка и столбец», то из ячейки, которая находится на пересечении строки и столбца).
- Условное форматирование — строка и столбец выделяются через условное форматирование. При применении данного метода возможно выбрать один из шести цветов для подсветки выделения строки/столбца.
Недостаток данного метода — все условные форматы, примененные к данному листу ранее, удаляются.
Весь лист — при выделении любой ячейки выделяются строка и столбец всего листа. Применяется по умолчанию.
Вся таблица данных — выделяются строка и столбец только в пределах используемого рабочего диапазона листа (прямоугольная область листа, в которой находятся какие-либо данные).
Выбранный диапазон — выделяются строка и столбец только в пределах указанного диапазона.
Область применения — выбирается область листа, к которой применяется координатное выделение:
- Только строка — выделяется только строка активной ячейки.
- Только столбец — выделяется только столбец активной ячейки.
- Строка и столбец — выделяется строка и столбец на пересечении активной ячейки.
Отключить Координатное выделение — выключает координатное выделение.
Помимо основной кнопки с формой, Координатное выделение предоставляет доступ к выпадающему меню, которое раскрывается нажатием на надпись Координатное выделение(со стрелочкой):
Меню дает доступ к командам, которые частично дублируют настройки основной формы (такие как метод выделения, цвет и отключение). Это позволяет управлять определенными настройками координатного выделения без вызова основной формы.
Примечание: координатное выделение действует во всех открытых книгах во всех листах до тех пор, пока оно не будет отключено через пункт Отключить Координатное выделение.
Так при примененном координатном выделении невозможно скопировать/вставить выделенный диапазон, или удалить данные целой строки и столбца. Но можно удалить значение активной ячейки, расположенной на пересечении строки и столбца.
Расскажи друзьям, если статья оказалась полезной:
Видеоинструкции по использованию надстройки MulTEx