Как выделить строку в Excel при выборе ячейки
Обновлено: 21.11.2024
При длительном просмотре большого листа вы можете со временем потерять представление о том, где находится ваш курсор и какие данные вы просматриваете. Чтобы точно знать, где вы находитесь в любой момент, заставьте Excel автоматически выделять для вас активную строку и столбец! Естественно, подсветка должна быть динамической и меняться каждый раз, когда вы выбираете другую ячейку. По сути, это то, чего мы стремимся достичь:
Автоматическое выделение строки и столбца выбранной ячейки с помощью VBA
В этом примере показано, как можно программно выделить активный столбец и строку с помощью VBA. Для этого мы будем использовать событие SelectionChange объекта Worksheet.
Во-первых, вы очищаете цвет фона всех ячеек на листе, задавая для свойства ColorIndex значение 0. Затем вы выделяете всю строку и столбец активной ячейки, устанавливая их ColorIndex в порядковый номер нужного цвета.
Настройка кода
Если вы хотите настроить код под свои нужды, вам могут пригодиться эти небольшие советы:
- В нашем примере кода используются два разных цвета, показанные на рисунке выше: индекс цвета 38 для строки и 24 для столбца. Чтобы изменить цвет подсветки, просто замените их любыми кодами ColorIndex по вашему выбору.
- Чтобы получить одинаковую окраску строки и столбца, используйте для них один и тот же номер индекса цвета.
- Чтобы выделить только активную строку, удалите или закомментируйте эту строку: .EntireColumn.Interior.ColorIndex = 24
- Чтобы выделить только активный столбец, удалите или закомментируйте эту строку: .EntireRow.Interior.ColorIndex = 38
Как добавить код на лист
Чтобы код автоматически выполнялся в фоновом режиме на определенном рабочем листе, вам нужно вставить его в окно кода, принадлежащее этому рабочему листу, а не в обычный модуль. Чтобы это сделать, выполните следующие действия:
- В книге нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
- В обозревателе проектов слева вы увидите список всех открытых книг и их рабочих листов. Если вы его не видите, используйте сочетание клавиш Ctrl + R, чтобы отобразить окно Project Explorer.
- Найдите целевую книгу. В папке Объекты Microsoft Excel дважды щелкните лист, к которому вы хотите применить выделение. В данном примере это Лист 1.
- В окне кода справа вставьте приведенный выше код.
- Сохраните файл как книгу с поддержкой макросов (.xlsm).
Преимущества: все делается в бэкенде; никаких настроек/настроек со стороны пользователя не требуется; работает во всех версиях Excel.
Недостатки: есть два существенных недостатка, которые делают этот метод неприменимым при определенных обстоятельствах:
- Код очищает фоновые цвета всех ячеек на листе. Если у вас есть цветные ячейки, не используйте это решение, потому что ваше пользовательское форматирование будет потеряно.
- Выполнение этого кода блокирует функцию отмены на листе, и вы не сможете отменить ошибочное действие, нажав Ctrl + Z .
Выделить активную строку и столбец без VBA
Лучшее, что вы можете сделать, чтобы выделить выбранную строку и/или столбец без VBA, — это условное форматирование Excel. Чтобы настроить его, выполните следующие действия:
- Выберите набор данных, в котором нужно выделить выделение.
- На вкладке Главная в группе Стили нажмите Новое правило.
- В диалоговом окне Новое правило форматирования выберите Использовать формулу для определения форматируемых ячеек.
- В поле Форматировать значения, в которых эта формула верна, введите одну из следующих формул:
Чтобы выделить активную строку:
Чтобы выделить активный столбец:
Чтобы выделить активную строку и столбец:
=ИЛИ(ЯЧЕЙКА("строка")=СТРОКА(), ЯЧЕЙКА("Столбец")= СТОЛБЦ())
Если вам нужны более подробные инструкции, см. статью Как создать правило условного форматирования на основе формулы.
В этом примере мы выбрали формулу ИЛИ, чтобы закрасить столбец и строку одним цветом. Это требует меньше усилий и подходит для большинства случаев.
К сожалению, это решение не так хорошо, как решение VBA, поскольку требует пересчета листа вручную (нажатием клавиши F9). По умолчанию Excel пересчитывает рабочий лист только после ввода новых данных или редактирования существующих, но не при изменении выбора. Итак, вы выбираете другую ячейку - ничего не происходит. Нажимаем F9 — лист обновляется, формула пересчитывается, подсветка обновляется.
Чтобы рабочий лист автоматически пересчитывался всякий раз, когда происходит событие SelectionChange, вы можете поместить этот простой код VBA в модуль кода вашего целевого листа, как описано в предыдущем примере:
Код вызывает пересчет выбранного диапазона/ячейки, что, в свою очередь, приводит к обновлению функции ЯЧЕЙКА и отражению изменений в условном форматировании.
Преимущества: в отличие от предыдущего метода, этот не влияет на существующее форматирование, которое вы применили вручную.
Недостатки: может снизить производительность Excel.
- Чтобы условное форматирование работало, необходимо заставить Excel пересчитывать формулу при каждом изменении выделения (либо вручную с помощью клавиши F9, либо автоматически с помощью VBA). Принудительные пересчеты могут замедлить работу вашего Excel. Поскольку наш код пересчитывает выборку, а не весь лист, негативный эффект, скорее всего, будет заметен только на действительно больших и сложных книгах.
- Поскольку функция ЯЧЕЙКА доступна в Excel 2007 и более поздних версиях, этот метод не будет работать в более ранних версиях.
Выделить выбранную строку и столбец с помощью условного форматирования и VBA
В случае, если предыдущий метод значительно замедляет вашу рабочую книгу, вы можете подойти к задаче по-другому: вместо пересчета рабочего листа при каждом перемещении пользователя, получите номер активной строки/столбца с помощью VBA, а затем отправьте этот номер функцию ROW() или COLUMN() с помощью формул условного форматирования.
Для этого необходимо выполнить следующие шаги:
- Добавьте в книгу новый пустой лист и назовите его Вспомогательный лист. Единственная цель этого листа — хранить два числа, представляющие строку и столбец, содержащие выбранную ячейку, чтобы вы могли безопасно скрыть лист позже.
- Вставьте приведенный ниже VBA в окно кода рабочего листа, где вы хотите реализовать подсветку. Подробные инструкции см. в нашем первом примере.
А теперь давайте подробно рассмотрим три основных варианта использования.
Как выделить активную строку
Чтобы выделить строку, в которой в данный момент находится курсор, задайте правило условного форматирования с помощью следующей формулы:
=ROW()='Вспомогательный лист'!$A$2
В результате пользователь может четко видеть, какая строка выбрана в данный момент:
Как выделить активный столбец
Чтобы выделить выбранный столбец, введите номер столбца в функцию СТОЛБЦ, используя следующую формулу:
=COLUMN()='Вспомогательный лист'!$B$2
Теперь выделенный столбец позволяет удобно и легко читать вертикальные данные, полностью сосредоточившись на нем.
Как выделить активную строку и столбец
Чтобы выбранная строка и столбец автоматически окрашивались одним цветом, объедините функции ROW() и COLUMN() в одну формулу:
=OR(ROW()='Вспомогательный лист'!$A$2, COLUMN()='Вспомогательный лист'!$B$2)
Соответствующие данные сразу выделяются, поэтому вы можете избежать неправильного их прочтения.
Преимущества: оптимизированная производительность; работает во всех версиях Excel
Недостатки: самая долгая настройка
Вот как выделить столбец и строку выбранной ячейки в Excel.Я благодарю вас за чтение и с нетерпением жду встречи с вами в нашем блоге на следующей неделе!
Сегодня на theSmallman что-то другое — вообще что-то другое. С момента запуска моего веб-сайта Excel и последующего блога более 3,5 лет назад я создал более 300 страниц от финансового моделирования до дизайна панели инструментов и разблокировки словаря сценариев Excel. Я сам написал каждое слово и много рисовал в своих сообщениях на форумах Ozgrid и Chandoo. Сегодня впервые кто-то другой будет проводить инструктаж. Два красивых джентльмена выше - Каспер и Микель. Они привлекли мое внимание через ленту Linkedin с чемпионата мира по финансовому моделированию Modeloff. Они родом из Дании — места, с которым австралийцы чувствуют тесную связь, поскольку одна из наших родных однажды станет королевой Дании. Каспер и Микель создали блог Excel, основанный на их увлеченности и знаниях Microsoft Excel.
В Spreadsheeto — у этих джентльменов есть смелое стремление — «создать лучшую информацию об Excel, которую вы когда-либо читали». Несмотря на то, что это амбициозная задача, ребята добились очень сильного старта, опубликовав бесчисленное количество полезных сообщений в блогах обо всем, что связано с Excel. Желаю им всяческих успехов в построении своего бренда и консалтингового бизнеса в Excel.
АВТОМАТИЧЕСКОЕ ВЫДЕЛЕНИЕ АКТИВНОЙ СТРОКИ ПРИ ВЫБОРЕ ЯЧЕЙКИ
В этом руководстве вы узнаете, как автоматически выделять строку, когда вы (или кто-то другой) выбираете ячейку на листе. Таким образом, пользователю всегда легко увидеть, какая строка выбрана. Это полезно в электронных таблицах с вертикальными записями, например в базе данных. Имейте в виду, что этот метод требует некоторой вычислительной мощности, поэтому, если у вашего файла уже возникли проблемы с плавной работой, эта функция может оказаться для вас неустойчивой.
В этой статье и примерах я использую Excel 2016 для Windows, но этот метод также можно использовать, если вы используете Excel 2007/2010/2013.
Общая идея
Чтобы это работало, нам нужны две вещи: настроить правило условного форматирования, которое выделяет всю строку, если определенная формула верна. Напишите макрос, который пересчитывает выбранные ячейки, когда новый выбор made.These две вещи довольно просты. Далее я покажу вам, как это сделать. Если вы хотите следить за прогрессом в этом руководстве, загрузите файл проекта здесь .
Выделение строк с условным форматированием само по себе не представляет сложности. Это автоматическая часть, которая сложна. Ознакомьтесь с этим руководством по условному форматированию, если вы не знакомы с основами.
Сначала выберите все непрерывные данные, выбрав ячейку в ваших данных и нажав сочетание клавиш «Ctrl + A». В файле проекта выбран диапазон A1:E55.
Затем нажмите кнопку "Условное форматирование" на вкладке "Главная" на ленте.
Нажмите «Новое правило» и в следующем диалоговом окне выберите «Использовать формулу для определения форматируемых ячеек».
Я использую Excel… МНОГО и очень давно! С этим приходит неизбежное… мои глаза уже не так молоды, как раньше… плюс, у нас, как правило, есть ТОННА данных в нашем файле Excel, что иногда затрудняет понимание того, какие данные находятся в строке, которую я просматриваю. в.
Я знаю, что вы можете использовать темы или выделить строку вручную, но мне нужно что-то динамичное. Я хочу выделить активную строку (строку, в которой находится мой курсор)… и я жадный, я хочу, чтобы она менялась каждый раз, когда я меняю строки.
Лично я считаю, что это должна быть функция, встроенная в Excel, но я нигде не могу ее найти. Если вам известен другой способ, оставьте комментарий ниже.
Я разработал несколько шагов, чтобы автоматически выделить активную строку. Читайте дальше, чтобы узнать об этих шагах и, возможно, они вам пригодятся!
Чтобы выделить строку, над которой вы работаете, необходимо выполнить несколько шагов для файла. Кроме того, вы должны знать заранее, что файл должен стать файлом макроса (xlsm), потому что мы добавим немного VBA — НЕ БЕСПОКОИТЕСЬ!! Это легко, так что продолжайте читать!
Шаг 1. Определите диапазон имен для использования в VBA
Необходим именованный диапазон — для этого просто перейдите в раздел «Формулы/Определить имя». Я использовал «HighlightRow» в качестве своего имени. Вы можете использовать все, что пожелаете, но это нужно использовать позже, поэтому будьте последовательны.
Кроме того, поле "ССЫЛАЕТСЯ НА" должно быть изменено на "=1".
Шаг 2. Добавьте условное форматирование
На этом шаге нам нужно добавить условное форматирование, которое будет использоваться в нашем VBA.
Нажмите кнопку "Выбрать все ячейки" в левом верхнем углу таблицы.
Затем перейдите на вкладку "Главная", перейдите к условному форматированию и добавьте новое правило.
Когда откроется новое окно правила форматирования, выберите «Использовать формулу», а затем определите формулу. Формула будет выглядеть так: «=Row(a1)=HighlightRow», где «HighlightRow» — это имя диапазона, определенного на шаге 1. Затем нажмите кнопку форматирования.
В окне форматирования ячеек перейдите на вкладку заливки и выберите цвет, который вы хотите использовать в качестве цвета для выделения активной строки.
Затем нажмите «ОК» в окне «Формат ячеек» и «ОК» в окне «Новое правило форматирования». На этом этапе строка 1 должна быть выделена выбранным вами цветом. Но это не полный конечный результат, который нам нужен… мы хотим, чтобы строка менялась при изменении нашей активной строки. Здесь мы привносим немного VBA.
Шаг 3. Добавьте VBA
Для этого шага вам понадобится вкладка "Разработчик", доступная на вашей ленте. Если он недоступен, вы можете добавить его, выбрав «Файл/Параметры/Настроить ленту» и перейдя на вкладку «Разработчики».
На вкладке разработчика нажмите Visual Basic. Это откроет редактор Visual Basic. Выберите книгу, над которой вы работаете, и дважды щелкните лист, с которым вы хотите, чтобы этот код работал… Когда вы дважды щелкните, откроется окно кода, измените раскрывающийся список с «Общие» на «Рабочий лист». р>
Выбрав рабочий лист из раскрывающегося списка, убедитесь, что во втором раскрывающемся списке выбран вариант «SelectionChange». Если нет, используйте раскрывающийся список и выберите его.
Код по умолчанию будет выглядеть следующим образом:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Выделите код по умолчанию и замените его следующим:
Закройте окно VBA и вернитесь в Excel. Если вы внимательно следовали инструкциям, вы сможете изменить активные ячейки и автоматически выделить их! ОЧЕНЬ ОЧЕНЬ КРУТО!!
Шаг 4. Сохранить как xlsm-файл
Если вы не сохраните этот файл Excel как файл xlsm, код сработает только один раз. Чтобы сохранить VBA, сохраните его как файл XLSM (макрос), и он будет работать каждый раз, когда вы открываете файл! Просто выберите «Файл», «Сохранить как» и выберите в раскрывающемся списке файлы макросов.
Вот оно! У вас все настроено! ТЫ СДЕЛАЛ ЭТО. Теперь иди, произведи впечатление на своего друга. 🙂
Изображение прямо над этой строкой — это GIF-файл этого изменения в действии (если вы его не видите, попробуйте открыть эту страницу на рабочем столе). Я хочу поблагодарить моего друга и коллегу по MVP, Джен Кунц за то, что побудила меня использовать GIF — это мой первый раз, спасибо, Джен!! Джен добавляет в свой блог КАЖДЫЙ ВТОРНИК – обязательно загляните сюда.
Прикольно, да? Я часто этим пользуюсь и надеюсь, вам понравится!
Я научился это делать, объединив несколько вещей, которые нашел в Интернете... Я не пишу на VBA — я сделал это, так что и вы тоже сможете!!
Как выделить выбранную строку/столбец/столбец и строку в Excel?
На большом листе вам может быть проще читать данные, выделив всю строку, столбец или и строку, и столбец, поскольку при прокрутке листа вы теряете отслеживание расположения выбранной ячейки. В этой статье я расскажу о том, как выделить всю строку, столбец или как строку, так и столбец выбранной ячейки, а при изменении ячейки столбец или строка новой ячейки выделяются автоматически.
Выделить строку/столбец/столбец и строку выбранной ячейки с условным форматированием
На самом деле, условное форматирование — это мощная функция, она может помочь вам выделить всю строку, столбец или столбец и строку активной ячейки, а также изменения при перемещении ячейки. Пожалуйста, сделайте следующее:
<р>1. Перейдите на рабочий лист, который вы хотите использовать, и щелкните ячейку A1, затем выберите весь рабочий лист (вы можете щелкнуть квадрат на пересечении заголовков строки и столбца), см. снимок экрана:<р>2. Затем нажмите «Главная» > «Условное форматирование» > «Новое правило», чтобы открыть диалоговое окно «Новое правило форматирования», во всплывающем диалоговом окне нажмите «Использовать формулу», чтобы определить, какие ячейки следует форматировать, и введите следующую формулу: = ИЛИ (ЯЧЕЙКА («столбец») =ЯЧЕЙКА("столбец",A1),ЯЧЕЙКА("строка")=ЯЧЕЙКА("строка",A1)) в текстовое поле Формат значений, где эта формула является истинной, см. снимок экрана:
Советы. Чтобы выделить всю строку выбранной ячейки, примените эту формулу: =СТРОКА()=ЯЧЕЙКА("строка") , чтобы выделить только выбранный столбец, используйте эту формулу: =СТОЛБЦ()=ЯЧЕЙКА(" столбец").
<р>3. Продолжайте нажимать кнопку «Формат» и в диалоговом окне «Формат ячеек» укажите цвет для выделения строки и столбца активной ячейки на вкладке «Заливка», см. снимок экрана:<р>4. Затем нажмите OK > OK, чтобы выйти из диалоговых окон, теперь вы можете видеть, что весь столбец и строка выбранной ячейки A1 были выделены сразу, затем вы можете щелкнуть любую ячейку и нажать клавишу F9, чтобы выделите выбранный столбец и строку целиком, см. снимок экрана:
Выделите строку / столбец / столбец и строку выбранной ячейки с помощью Kutools for Excel
Если метод условного форматирования для вас немного сложен, я могу представить удобный инструмент - Kutools for Excel, с его утилитой Reading Layout, вы можете выделить строку, столбец, строку и столбец выбранной ячейки только одним нажмите.
После установки Kutools for Excel сделайте следующее:
<р>1. Выберите ячейку, в которой вы хотите выделить столбец и строку, затем нажмите Kutools > Макет чтения, и столбец и строка выбранной ячейки будут выделены, когда вы нажмете другую ячейку или диапазон ячеек, столбец и строку новые ячейки выделяются автоматически, см. снимок экрана:
Примечания:
<р>1. Вы можете перейти в диалоговое окно «Настройки макета чтения», чтобы установить выделенный цвет, а также формы и стили по своему усмотрению.<р>2. Если вы хотите отменить выделение, просто снова нажмите Kutools > Макет чтения, чтобы отключить автоматическое затенение.
Демонстрация: выделите строку / столбец / столбец и строку выбранной ячейки с помощью Kutools for Excel
Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Скачать и бесплатно попробовать прямо сейчас!
Читайте также: