Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Координатное выделение в 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), для которого будем делать перекрестное выделение.
Далее в панели вкладок выбираем Главная -> Условное форматирование и нажимаем Создать правило:


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

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

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

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

Читать еще:  Формула подсчета символов в ячейке excel

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

Координатное выделение в excel

Вам часто приходится работать с громоздкими таблицами, которые не умещаются на мониторе? Вы уменьшаете масштаб отображения, чтобы на экран вместилось больше информации и мечтаете о 22-дюймовом широкоэкранном ЖК-мониторе?

А если при движении активной ячейки по листу будет подсвечиваться текущая строка и столбец? Своего рода координатное выделение.

Хотите такое в своей таблице?

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

Откройте лист со списком, на котором хотите получить такое координатное выделение. Щелкните правой кнопкой мыши по ярлычку листа и выберите в контекстном меню команду Исходный текст (Source Code). Должно открыться окно редактора Visual Basic. Скопируйте в него этот текст макроса:

Public NoEvents As Boolean
Public Sub SelOn()
NoEvents = False
End Sub
Public Sub SelOff()
NoEvents = True
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

Закройте редактор Visual Basic и вернитесь в Excel. Теперь можно назначить сочетания клавиш для включения и выключения нашего режима координатного выделения. Для этого откройте меню Сервис — Макрос — Макросы (Tools — Macro — Macros) . Макрос SelOn включает выделение, а макрос SelOff — выключает. Нажав кнопку Параметры (Options) в окне Макросы можно задать сочетания клавиш для запуска этих макросов.

Вот и все, собственно — наслаждайтесь!

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2019 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2019 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров.
30.09.2019 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2019 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров.
30.09.2019 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

Выделить активную строку цветом в таблице Excel

Когда приходится работать с большим объемом данных в Excel, где строки сильно растянуты и не умещаются в один экран, сложно сравнить значения в одной и той же строке. Постоянно приходится передвигать горизонтальную полосу прокрутки. Работа была бы более удобной если бы целая активная строка была бы выделена цветом – как курсор на целую строку. Чтобы выделить активную строку или столбец цветом, создадим свою функцию в Excel с помощью макроса и с комбинируем ее с условным форматированием.

Подсветка строки в Excel цветом

Чтобы создать свой широкий курсов на целую строку в Excel, необходимо создать макрос и использовать его вместе с условным форматированием. Для примера создадим таблицу с широкими строками и большим количеством столбцов. Нам нужно выделить строку цветом по условию Excel. Например, если активная ячейка находится в строке 2, тогда выделить цветом всю строку 2 (в пределах таблицы или на весь лист). Для примера создадим таблицу с широкими строками и большим количеством столбцов:

Подсветка текущей строки в Excel цветом:

  1. Откройте редактор VBA для этого выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.
  2. В правом окне к активному проекту добавьте новый модуль. Для того в редакторе VBA выберите опцию: «Insert»-«Module»
  3. В окне модуля вставьте этот VBA-код макроса:
  4. Не закрывая окно VBA-редактора перейдите на рабочий лист с исходной таблицей. Выделите целую вторую строку таблицы A2:H2 и выберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Создать правило»-«Использовать формулу для определения форматированных ячеек:».
  5. В полю ввода введите формулу:
  6. Щелкните по кнопке «Формат» и на вкладке «Заливка» укажите зеленый цвет. На всех окнах жмем ОК.
  7. Скопируйте вторую строку таблицы.
  8. Выделите остальные строки и выберите инструмент: «ГЛАВНАЯ»-«Вставить»-«Специальная вставка»-«Форматы» (или нажмите комбинацию клавиш CTRL+ALT+V, потом отметить форматы и нажать ОК). Или воспользуйтесь инструментом: «ГЛАВНАЯ»-«Буфер обмена»-«Формат по образцу».
  9. Вернитесь к редактору VBA и в окне «Project» дважды щелкните по «Лист1». В появившемся окне вставьте следующий VBA-код макроса:
  10. Сохраните и закройте редактор VBA.

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

Полезный вопрос! А как же выделить активный столбец цветом? Аналогичным методом реализовывается с помощью макроса не только подсветка цветом активной строки, но и столбца. Для этого:

  1. В модуль где находится код подсветки строки VBA-макроса, добавим код новой функции АктивныйСтолбец:
  2. Добавим новое правило в условном форматировании для нашей таблицы в диапазоне A1:A7. Теперь в новом правиле пишем функцию АктивныйСтолбец(), а вместо функции СТРОКА – СТОЛБЕЦ. И указываем синий цвет форматирования заливки ячейки.
  3. Проверим все созданные правила для таблицы. Перейдите в ячейку A2 и ввыберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Управление правилами». Диспетчер правил условного форматирования должен выглядеть так:
  4. Скопируйте формат столбца A1:A7 в остальные столбцы таблицы диапазона B1:H7. Например, с помощью инструмента: «ГЛАВНАЯ»-«Буфер обмена»-«Формат по образцу».
  5. Результат превышает ожидания. Идеальный курсор для просмотра огромных таблиц с большим количеством данных на множестве строк и столбцов:

Принцип действия создания пользовательского курсора для таблицы

Применяемая в условном форматировании созданная нами функция VBA =АктивнаяСтрока() позволяет нам получить номер текущей строки в которой стала активной любая из ее ячеек. Результат вычисления пользовательской функции =АктивнаяСтрока() сравнивается с результатом функции =СТРОКА(), которая также возвращает номер текущей строки в данном моменте вычисления условного форматирования.

Так как обе функции выполняются при активной ячейке в одной и той же строке их значения равны между собой и возвращают общее логическое значение ИСТИНА. В результате чего происходит выделение строки цветом по условию. Если значение ИСТИНА, тогда присваивается формат цвета для целой активной строки таблицы.

Координатное выделение в excel

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

В данном случае всегда есть шанс, и шанс препротивный «соскользнуть» своим взглядом ниже или выше и выбрать не те данные. Поэтому координатное выделение – именно то, что вам нужно. Чем оно полезно? Текущий столбик и строчка начинают подсвечиваться, когда активная ячейка двигается.

Теперь вам не придется прикладывать к монитору линейку или перепроверять по десятку-другому раз всю впечатанную информацию. Хорошо, это вас устраивает. Но как этого достичь? Воспользуйтесь макросами, которые будут выделять и столбик, и строчку одновременно. И, конечно, подобное крестообразное выделение ячеек должно быть отключаемо и включаемо – в зависимости от наших потребностей. Иначе работа может наоборот затрудниться. В итоге нам нужен не один, а сразу три макроса – макрос, выделяющий строчки, а также парочка включателя и выключателя.

Открываем таблицу, в которую вам требуется «вписать» координатное выделение, правой кнопкой кликаем по иконке листа, нам откроется контекстное меню. Там выбираем Исходный код, и вуаля, перед вами – окно Visual Basic. В него вставляем этот текст:

Dim Coord_Selection As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim WorkRange As Range

If Target.Cells.Count > 1 Then Exit Sub

If Coord_Selection = False Then Exit Sub

Set WorkRange = Range(«A6:N300») ‘адрес рабочего диапазона с таблицей

Intersect(WorkRange, Union(Target.EntireColumn, Target.EntireRow)).Select

Теперь потребуется изменить адрес данного рабочего диапазона на тот, который вам нужен. Имейте ввиду, координатное выделение будет работать только в пределах заданного диапазона. Ну все, это окно можно закрывать и возвращаться в таблицу. Здесь вам нужно нажать Альт и Ф8, так вы откроете окно всех имеющихся на данный момент макросов. В окне увидите Selection On и макрос Selection Off. Первый координатное выделение включает. Второй выключает. А если вы кликните по Параметрам, сможете назначить всем макросам удобное для вас сочетание горячих клавиш. Как видите, данный способ достаточно прост в реализации и, что самое приятное, это вполне себе безобидное действие, содержимое или его внешний вид (то есть, содержимое) никак не изменится. Но если есть у вас в диапазоне выделения объединенные ячейки, то макрос корректно работать не сможет: будут выделяться все объединения. А если нажать делит, конечно, случайно, то вы удалите данные из всех выделенных областей. В остальном же способ весьма хорош.

Ссылка на основную публикацию
Adblock
detector