Note: The other languages of the website are Google-translated. Back to English

Как автоматически выделить строку и столбец активной ячейки в Excel?

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

Автоматическое выделение строки и столбца выбранной ячейки с кодом VBA
Один щелчок, чтобы выделить строку и столбец выбранной ячейки


Автоматическое выделение строки и столбца выбранной ячейки с кодом VBA

Следующий код VBA может помочь вам автоматически выделить весь столбец и строку текущей ячейки на листе, выполните следующие действия:

1. Откройте рабочий лист, вы автоматически выделите строку и столбец активной ячейки, щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню.

2. Затем скопируйте и вставьте следующий код VBA в пустое окно кода:

Код VBA: автоматическое выделение строки и столбца выбранной ячейки

Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Update 20200430
Static xRow
Static xColumn
If xColumn <> "" Then
    With Columns(xColumn).Interior
        .ColorIndex = xlNone
    End With
    With Rows(xRow).Interior
        .ColorIndex = xlNone
    End With
End If
pRow = Selection.Row
pColumn = Selection.Column
xRow = pRow
xColumn = pColumn
With Columns(pColumn).Interior
    .ColorIndex = 6
    .Pattern = xlSolid
End With
With Rows(pRow).Interior
    .ColorIndex = 6
    .Pattern = xlSolid
End With
End Sub

3, Затем нажмите другой + Q вместе, чтобы вернуться на рабочий лист, теперь, когда вы выбираете ячейку, вся строка и столбец этой ячейки выделяются. И он будет динамически перемещаться по мере изменения выбранной ячейки.

документ-чтение-макет4

Ноты:

  • 1. В приведенном выше коде вы можете изменить .Колориндекс = 6 цвет на другой цвет, который вам нравится.
  • 2. Этот код VBA применяется только к листу, который вы выбрали на шаге 2 выше.
  • 3. Если вы не хотите снова выделять столбец и строку выбранной ячейки, вам необходимо удалить указанный выше VBA и установить отсутствие заливки для выбранной строки и столбца, нажав Главная > Цвет заливки > Без заливки.
  • 4. Если на вашем листе есть несколько цветных ячеек, цвет будет потерян, когда вы щелкнете по ячейке, а затем перейдете к другой ячейке.

Автоматическое выделение строки и столбца выбранной ячейки с помощью Kutools for Excel

Если вы новичок в VBA, здесь рекомендую Kutools for Excel's Макет для чтения утилита. Эта утилита помогает легко выделить строку и столбец выбранной ячейки в Excel, как показано в демонстрации ниже. Скачайте и попробуйте прямо сейчас! (30-дневный бесплатный пробный период)

Посмотрим, как применить Kutools for ExcelАвтора Макет для чтения возможность выделять целые строки и столбцы диапазона ячеек.

1. Нажмите Кутулс > Макет для чтения. Смотрите скриншот:

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

Заметки:

  • 1. Вы можете изменить настройки формата чтения в соответствии с вашими потребностями, как показано на скриншоте ниже.
  • 2. Вы можете отменить эту утилиту, сняв флажок Макет для чтения под Reading выпадающий список.
  • 3. Это Просмотр макета чтения Эта функция применяется ко всем листам в вашей книге.
  • 4. Это Просмотр макета чтения функция будет отключена при следующем запуске книги.

Один щелчок, чтобы выделить строку и столбец выбранной ячейки


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (56)
Номинальный 5 из 5 · рейтинги 1
Этот комментарий был сведен к минимуму модератором на сайте
Привет, данный код отлично работает для выделения строки и столбца активной ячейки. но исходный цвет ячейки вместе с настройками цвета столбца и строки теряются. Как это преодолеть?
Этот комментарий был сведен к минимуму модератором на сайте
Вот мой вариант выделения текущей строки (от A до AK). Чтобы избежать стирания цвета ячеек, я вместо этого использую красную рамку... плюс она восстанавливает мою предпочтительную границу до только что оставленной строки. Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lRow As Long, lCol As Long Static lPrevRow As Long 'Восстановить предыдущую активную строку до... светло-голубой пунктирной линии If lPrevRow > 0 Then Range("A" & lPrevRow, "AK" & lPrevRow).BorderAround Weight:=xlHairline, Color:=RGB(162, 200, 255) End If 'Выделить текущую строку красной рамкой lRow = Target.Row Range("A" & lRow, "AK" & lRow) .BorderAround Вес:=xlThin, Цвет:=RGB(255, 0, 0) lPrevRow = lRow End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Ой! человек, работает как шарм !!! здорово
Этот комментарий был сведен к минимуму модератором на сайте
теперь вы гений, как насчет строк и столбцов?
Этот комментарий был сведен к минимуму модератором на сайте
ПРИВЕТ, У МЕНЯ ТАКАЯ ПРОБЛЕМА С SURESH. МОЖЕТЕ ЛИ ВЫ ПРЕДОСТАВИТЬ МНЕ ВЕСЬ ИСПРАВЛЕННЫЙ КОД, ЧТОБЫ НЕ СТИРАТЬ ИСХОДНЫЙ ЦВЕТ ЯЧЕЙКИ, Я ИСПОЛЬЗУЮ ЭТО: Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Update 20140318 Static xRow Static xColumn If xColumn "" Затем со столбцами (xColumn).Interior .ColorIndex = xlNone End With Rows (xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row pColumn = Selection.Column xRow = pRow xColumn = pColumn With Columns( pColumn).Interior .ColorIndex = 6 .Pattern = xlSolid End With With Rows(pRow).Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Не удалось заставить это работать - пожалуйста, помогите, спасибо :-)
Этот комментарий был сведен к минимуму модератором на сайте
"Пожалуйста, помогите" - вы ожидаете ответа с такой расплывчатой ​​просьбой, и никаких усилий, чтобы объяснить проблему?
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Это идеальный код, спасибо!!!!! никаких проблем с переходом от ячейки к ячейке и оставлением за собой следов бликов и контуров.
Этот комментарий был сведен к минимуму модератором на сайте
я использую таблицу вставки для своих данных, и она не меняет исходную окраску
Этот комментарий был сведен к минимуму модератором на сайте
Эта опция теперь доступна для тех, кто не занимается кодированием в 2010 году, если у вас есть вкладка «Разработчик». В разделе «Разработчик» нажмите «Свойства». Установите для EnableOutlining значение True. Ограничение: кажется, что это относится только к одному рабочему листу за раз, хотя его легко установить для других рабочих листов, щелкнув вкладки внизу (оставив диалоговое окно «Свойства» открытым). Почему Excel не делает это доступным в разделе «Параметры», ну, это Microsoft.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, после ввода кода функция «отменить» больше не работает. Кто-нибудь может помочь?
Этот комментарий был сведен к минимуму модератором на сайте
Привет! Мне очень нравится этот код, но, как сказал Суреш, он удаляет исходные цвета ячеек! Как я могу сохранить исходные цвета ячеек?? Пожалуйста, ответьте, спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Это работает блестяще. Есть ли способ сделать так, чтобы он не отображался при печати?
Этот комментарий был сведен к минимуму модератором на сайте
Как раз то, что я искал. Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Чтобы сохранить цвет ячейки, вам нужно будет создать условное форматирование для ячеек.
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли планы добавить функциональность Mac для Kutools?
Этот комментарий был сведен к минимуму модератором на сайте
Как я могу изменить цвета полос? Спасибо за это отличное решение. С уважением, Тон
Этот комментарий был сведен к минимуму модератором на сайте
как я могу остановить это, если я хочу, чтобы это прекратилось??
Этот комментарий был сведен к минимуму модератором на сайте
Это код, который я использовал только для строки (выделена серым цветом): Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Update 20140318 Static xRow If xRow "" Then With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row xRow = pRow With Rows(pRow).Interior .ColorIndex = 15 .Pattern = xlSolid End With End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Копирование и вставка вашего кода не работали должным образом, но после исправления синтаксических ошибок он работал потрясающе! Спасибо. Вот рабочий код для выделения (желтым цветом) только строки: Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Update 20140318 Static xRow If xRow "" Then With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row xRow = pRow With Rows(pRow).Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Браво..именно то, что я искал.....большое спасибо!!
Этот комментарий был сведен к минимуму модератором на сайте
Когда я снова открываю свою рабочую книгу, выделенный столбец из предыдущего сеанса остается и изменяется, когда я перемещаюсь по рабочему листу в новом сеансе. Есть ли способ «очистить» предыдущий сеанс каждый раз при открытии книги?
Этот комментарий был сведен к минимуму модератором на сайте
Это работает, если у вас нет цветов не в условном форматировании. Просто добавьте еще две с петлями. Sub Worksheet_SelectionChange (ByVal Target As Excel.Range) 'Update 20140318 Static xRow Static xColumn If xColumn "" Then With Rows (xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row xRow = pRow With Rows (pRow) .Interior .ColorIndex = 6 .Pattern = xlSolid End With With Rows (pRow - 1).Interior .ColorIndex = 0 .Pattern = x1Solid End With With Rows (pRow + 1).Interior .ColorIndex = 0 .Pattern = x1Solid End With Конец сабвуфера
Этот комментарий был сведен к минимуму модератором на сайте
КАК Я МОГУ СДЕЛАТЬ ЭТО ВОЗМОЖНЫМ, ЕСЛИ ЕСТЬ ЛИСТ, КОТОРЫЙ УЖЕ ЦВЕТЕН.
Этот комментарий был сведен к минимуму модератором на сайте
Отличная статья! Спасатель для меня. И если вы хотите, чтобы фактическая ячейка была выделена желтым цветом, а строка / ячейки серым, это код: Sub Worksheet_SelectionChange (ByVal Target As Excel.Range) 'Update 20151216 Static xRow Static xColumn If xColumn "" Then With Columns (xColumn .Interior .ColorIndex = xlNone End with With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row pColumn = Selection.Column xRow = pRow xColumn = pColumn With Columns (pColumn).Interior .ColorIndex = 15 .Pattern = xlSolid End With With Rows(pRow).Interior .ColorIndex = 15 .Pattern = xlSolid End With Selection.Interior.ColorIndex = 6 End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Исправьте код следующим образом: Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Update 20151216 Static xRow Static xColumn If xColumn "" Then With Columns(xColumn).Interior .ColorIndex = xlNone End With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row pColumn = Selection.Column xRow = pRow xColumn = pColumn With Columns(pColumn).Interior .ColorIndex = 15 .Pattern = xlSolid End With With Rows(pRow).Interior .ColorIndex = 15 . Pattern = xlSolid End With Selection.Interior.ColorIndex = 6 End Sub [quote]Отличная статья!. Спасатель для меня. И если вы хотите, чтобы фактическая ячейка была выделена желтым цветом, а строка / ячейки серым, это код: Sub Worksheet_SelectionChange (ByVal Target As Excel.Range) 'Update 20151216 Static xRow Static xColumn If xColumn "" Then With Columns (xColumn .Interior .ColorIndex = xlNone End with With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row pColumn = Selection.Column xRow = pRow xColumn = pColumn With Columns (pColumn).Interior .ColorIndex = 15 .Pattern = xlSolid End With With Rows(pRow).Interior .ColorIndex = 15 .Pattern = xlSolid End With Selection.Interior.ColorIndex = 6 End SubВисенте[/ Цитата]
Этот комментарий был сведен к минимуму модератором на сайте
Привет. Как я могу выделить всю строку, если одна из ячеек объединена. Я вижу, что kutool может провести линию через ячейку слияния. Пожалуйста, помогите мне с этим решением
Этот комментарий был сведен к минимуму модератором на сайте
Я изменил ваш код с подсветки интерьера на создание красных рамок.
.BorderAround Вес: = xlThick, Цвет: = vbRed
Я выбираю ячейку, границы становятся красными. Отлично. Я копирую, выбираю другую ячейку, эти границы становятся красными, но буфер обмена очищается. Я не могу понять, как использовать границы и сохранить функциональность копирования/вставки.
Какие-либо предложения?
Этот комментарий был сведен к минимуму модератором на сайте
можешь поделиться всем кодом?
Этот комментарий был сведен к минимуму модератором на сайте
Sub Worksheet_SelectionChange (ByVal Target As Excel.Range)

'Обновление 20192021
Статическая xRow
Если xRow <> "" Тогда
Строки (xRow).BorderAround Вес: = xlThin, Цвет: = vbBlack
End If
pRow = Выбор.Строка
xRow = pRow
Строки (pRow).BorderAround Вес: = xlThick, Цвет: = vbRed
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
как предотвратить удаление кнопок отмены и повтора с помощью этого макроса без использования Kutools
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Прости за это. Проблема отмены и повтора в макросе не может быть решена.
Этот комментарий был сведен к минимуму модератором на сайте
VBA для выделения одной ячейки работает, но это не так.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за публикацию! Это очень полезно при сверке чеков с помощью электронной таблицы.
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL