Перейти до основного матеріалу

Навігація великими робочими аркушами Excel, наповненими даними, може бути складною справою, і легко втратити слід від свого місця або неправильно прочитати значення. Щоб покращити аналіз даних і зменшити ймовірність помилок, ми представимо 3 різні способи динамічного виділення рядка та стовпця вибраної клітинки в Excel. Коли ви переходите від комірки до комірки, виділення динамічно зміщується, забезпечуючи чітку та інтуїтивно зрозумілу візуальну підказку, щоб ви зосередилися на правильних даних, як показано нижче.

Автоматичне виділення активного рядка та стовпця в Excel


Відео: Автоматичне виділення активного рядка та стовпця в Excel


Автоматичне виділення активного рядка та стовпця за допомогою коду VBA

Щоб автоматично виділити весь стовпець і рядок вибраної клітинки на поточному аркуші, наведений нижче код VBA може допомогти вам виконати це завдання.

Крок 1: відкрийте робочий аркуш, де потрібно автоматично виділити активний рядок і стовпець

Крок 2. Відкрийте редактор аркушів VBA і скопіюйте код

  1. Клацніть правою кнопкою миші назву аркуша та виберіть Переглянути код у контекстному меню див. знімок екрана:
  2. У відкритому редакторі модулів аркушів VBA скопіюйте та вставте наведений нижче код у порожній модуль. Перегляньте скріншот:
    Код VBA: автоматичне виділення рядка та стовпця вибраної комірки
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Update by Extendoffice
        Dim rowRange As Range
        Dim colRange As Range
        Dim activeCell As Range
        Set activeCell = Target.Cells(1, 1)
        Set rowRange = Rows(activeCell.Row)
        Set colRange = Columns(activeCell.Column)
         Cells.Interior.ColorIndex = xlNone
        rowRange.Interior.Color = RGB(248, 150, 171)
        colRange.Interior.Color = RGB(173, 233, 249)
    End Sub
    
    Поради: налаштуйте код
    • Щоб змінити колір виділення, вам просто потрібно змінити значення RGB у наступних сценаріях:
      rowRange.Interior.Color = RGB(248, 150, 171)
      colRange.Interior.Color = RGB(173, 233, 249)
    • Щоб виділити лише весь рядок вибраної комірки, видаліть або закоментуйте (додайте апостроф на початку) цей рядок:
      colRange.Interior.Color = RGB(173, 233, 249)
    • Щоб виділити лише весь стовпець вибраної клітинки, видаліть або закоментуйте (додайте апостроф) цей рядок:
      rowRange.Interior.Color = RGB(248, 150, 171)

  3. Потім закрийте вікно редактора VBA, щоб повернутися до аркуша.

Результат:

Тепер, коли ви вибираєте комірку, весь рядок і стовпець цієї комірки автоматично підсвічуються, а виділення динамічно зміщується, коли вибрана комірка змінюється, як показано нижче:

Примітки:
  • Цей код очистить фонові кольори з усіх комірок на робочому аркуші, тому уникайте використання цього рішення, якщо у вас є клітинки з нестандартним кольором.
  • Запуск цього коду вимкне розстібати на аркуші, тобто ви не можете скасувати помилки, натиснувши кнопку Ctrl + Z ярлик
  • Цей код не працюватиме на захищеному аркуші.
  • Щоб припинити виділення рядка та стовпця вибраної клітинки, вам потрібно буде видалити раніше доданий код VBA. Після цього скинути підсвічування, натиснувши Головна > Колір заливки > Без заповнення.

Автоматично виділяйте активний рядок і стовпець одним натисканням кнопки Kutools

Зіткнулися з обмеженнями коду VBA в Excel? Кутулс для Excel's Фокус сітки функція - ваше ідеальне рішення! Розроблений для усунення недоліків VBA, він пропонує різноманітний набір стилів підсвічування для покращення роботи з аркушами. Завдяки можливості застосовувати ці стилі до всіх відкритих книг, Кутулс забезпечує незмінно ефективний і візуально привабливий процес керування даними.

примітки: Якщо ви хочете використовувати це Фокус сітки функція, будь ласка завантажте та встановіть Kutools для Excel перший.

після установки Kutools для Excel, Будь ласка, натисніть Кутулс > Фокус сітки щоб увімкнути цю функцію. Тепер ви бачите, що рядок і стовпець активної комірки відразу виділені. Це підсвічування динамічно змінюється, коли ви змінюєте вибір клітинки. Дивіться демонстрацію нижче:

Основні переваги функції Grid Focus:
  • Зберігає оригінальні фонові кольори комірки:
    На відміну від коду VBA, ця функція поважає існуюче форматування аркуша.
  • Можна використовувати в захищених аркушах:
    Ця функція без проблем працює із захищеними аркушами, що робить її ідеальною для керування конфіденційними або спільними документами без шкоди для безпеки.
  • Не впливає на функцію скасування:
    Завдяки цій функції ви зберігаєте повний доступ до функції скасування Excel. Це гарантує, що ви можете легко скасувати зміни, додаючи рівень безпеки до ваших маніпуляцій даними.
  • Стабільна продуктивність з великим обсягом даних:
    Ця функція призначена для ефективної обробки великих наборів даних, забезпечуючи стабільну продуктивність навіть у складних та інтенсивних електронних таблицях.
  • Кілька стилів підсвічування:
    Ця функція пропонує різноманітні варіанти підсвічування, дозволяючи вам вибирати з різних стилів і кольорів, щоб ваша активна комірка рядка, стовпця або рядка і стовпця виділялася таким чином, який найкраще відповідає вашим уподобанням і потребам.
Порада:

Автоматично виділяти активний рядок і стовпець за допомогою умовного форматування

В Excel також можна налаштувати умовне форматування для автоматичного виділення активного рядка та стовпця. Щоб налаштувати цю функцію, виконайте такі дії:

Крок 1: виберіть діапазон даних

Спочатку виберіть діапазон клітинок, до яких потрібно застосувати цю функцію. Це може бути весь аркуш або певний набір даних. Тут я виберу весь аркуш.

Крок 2: Доступ до умовного форматування

Натисніть Головна > Умовне форматування > Нове правило, див. скріншот:

Крок 3: установіть операції в новому правилі форматування

  1. У Нове правило форматування діалогове вікно, виберіть За допомогою формули визначте, які клітинки потрібно форматувати від Виберіть тип правила вікно списку.
  2. У Форматувати значення, де ця формула відповідає дійсності введіть одну з цих формул, у цьому прикладі я застосую третю формулу, щоб виділити активний рядок і стовпець.
    Щоб виділити активний рядок:
    =CELL("row")=ROW()
    Щоб виділити активний стовпець:
    =CELL("col")=COLUMN()
    Щоб виділити активний рядок і стовпець:
    =OR(CELL("row")=ROW(), CELL("col")= COLUMN())
  3. Потім натисніть кнопку сформований кнопки.
  4. У наступному Формат ячеек у діалоговому вікні під Заповнювати виберіть один колір, щоб виділити активний рядок і стовпець, як вам потрібно, перегляньте знімок екрана:
  5. Потім натисніть кнопку OK > OK щоб закрити діалоги.

Результат:

Тепер ви бачите, що весь стовпець і рядок клітинки A1 були виділені одночасно. Щоб застосувати це виділення до іншої комірки, просто клацніть потрібну комірку та натисніть F9 клавіша , щоб оновити аркуш, після чого буде виділено весь стовпець і рядок нововибраної клітинки.

Порада: 
  • Дійсно, хоча підхід умовного форматування для виділення в Excel пропонує рішення, він не такий простий, як використання VBA та Фокус сітки функція. Цей метод потребує ручного перерахунку аркуша (досягається натисканням F9 ключ)
    Щоб увімкнути автоматичний перерахунок вашого аркуша, ви можете включити простий код VBA до модуля коду вашого цільового аркуша. Це автоматизує процес оновлення, забезпечуючи оновлення підсвічування одразу після вибору різних клітинок без натискання кнопки F9 ключ. Клацніть правою кнопкою миші ім’я аркуша та виберіть Переглянути код з контекстного меню. Потім скопіюйте та вставте наступний код у модуль листа:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Target.Calculate
    End Sub
    
  • Умовне форматування зберігає існуюче форматування, яке ви вручну застосували до робочого аркуша.
  • Відомо, що умовне форматування є мінливим, особливо коли застосовується до дуже великих наборів даних. Його широке використання може потенційно сповільнити продуктивність вашої книги, вплинувши на ефективність обробки даних і навігації.
  • Функція CELL доступна лише в Excel версії 2007 і новіших, цей метод несумісний із попередніми версіями Excel.

Порівняння наведених вище методів

особливість Код VBA Умовне форматування Kutools для Excel
Зберігати фоновий колір клітинки Немає Так Так
Підтримує скасування Немає Так Так
Стабільний у великих наборах даних Немає Немає Так
Можна використовувати в захищених аркушах Немає Так Так
Застосовується до всіх відкритих робочих книг Лише поточний аркуш Лише поточний аркуш Усі відкриті робочі книги
Потрібне ручне оновлення (F9) Немає Так Немає

На цьому наш посібник про те, як виділити стовпець і рядок вибраної клітинки в Excel, завершується. Якщо вам цікаво ознайомитися з іншими порадами та підказками щодо Excel, будь ласка, наш веб-сайт пропонує тисячі посібників натисніть тут, щоб отримати до них доступ. Дякуємо, що прочитали, і ми з нетерпінням чекаємо надати вам більше корисної інформації в майбутньому!


Статті по темі:

  • Автовиділення рядка та стовпця активної комірки
  • Коли ви переглядаєте великий аркуш із численними даними, можливо, вам захочеться виділити рядки та стовпці вибраної комірки, щоб ви могли легко та інтуїтивно читати дані, щоб уникнути їх неправильного прочитання. Тут я можу представити вам кілька цікавих прийомів, щоб виділити рядок і стовпець поточної комірки, коли клітинку змінено, стовпець і рядок нової комірки виділяються автоматично.
  • Виділіть усі інші рядки чи стовпці в Excel
  • На великому робочому аркуші виділення або заповнення кожного другого чи кожного n-го рядка чи стовпця покращує видимість і читабельність даних. Це не тільки робить робочий аркуш більш акуратним, але й допомагає швидше зрозуміти дані. У цій статті ми розповімо вам про різні способи затінення кожного другого або n-го рядка чи стовпця, щоб допомогти вам представити свої дані в більш привабливий і зрозумілий спосіб.
  • Під час прокручування виділіть цілий рядок
  • Якщо у вас великий аркуш із кількома стовпцями, вам буде важко розрізнити дані в цьому рядку. У цьому випадку ви можете виділити весь рядок активної комірки, щоб ви могли швидко і легко переглядати дані в цьому рядку, коли ви прокручуєте горизонтальну смугу прокрутки. У цій статті я розповім про деякі трюки для вирішення цієї проблеми .
  • Виділіть рядки на основі розкривного списку
  • У цій статті мова піде про те, як виділити рядки на основі випадаючого списку, наприклад, візьміть такий знімок екрана, наприклад, коли я вибираю “In Progress” зі спадного списку в стовпці E, мені потрібно виділити цей рядок червоним кольором, виберіть "Завершено" зі спадного списку, мені потрібно виділити цей рядок синім кольором, і коли я виберу "Не розпочато", зелений колір буде виділений для виділення рядка.
Comments (61)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
And please reply to an email
This comment was minimized by the moderator on the site
Great job . But in the first task at the top of the browser page, when I did it, it was working correctly, but when I made protection for the sheet, it stopped working correctly, you see, what's the solution. Thank you
This comment was minimized by the moderator on the site
Hello,
To solve your problem, please apply the followign code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rowRange As Range
    Dim colRange As Range
    Dim activeCell As Range
    Me.Unprotect
    Cells.Interior.ColorIndex = xlNone
    Set activeCell = Target.Cells(1, 1)
    Set rowRange = Rows(activeCell.Row)
    Set colRange = Columns(activeCell.Column)
    rowRange.Interior.Color = RGB(173, 233, 249)
    colRange.Interior.Color = RGB(173, 233, 249)
    Me.Protect
End Sub



Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    
    ' Clear previous highlighting
    Me.Cells.FormatConditions.Delete
    
    ' Check if Checkbox1 is checked
    ' If CheckBox1.Value = True Then
        ' Check if a single cell or a range of cells is selected
        If Target.Cells.Count = 1 Or Target.Cells.Count > 1 Then
            Dim selectedRange As Range
            Dim selectedRows As Range
            Dim selectedColumns As Range
            
            Set selectedRange = Target
            Set selectedRows = Me.Range(Me.Cells(selectedRange.Row, 1), Me.Cells(selectedRange.Row + selectedRange.Rows.Count - 1, 1).EntireRow)
            Set selectedColumns = Me.Range(Me.Cells(1, selectedRange.Column), Me.Cells(1, selectedRange.Column + selectedRange.Columns.Count - 1).EntireColumn)
            
            ' Add conditional formatting to highlight the selected rows
            With selectedRows.FormatConditions.Add(Type:=xlExpression, Formula1:="=TRUE")
                .Interior.Color = RGB(255, 230, 153) ' Yellow color
            End With
            
            ' Add conditional formatting to highlight the selected columns
            With selectedColumns.FormatConditions.Add(Type:=xlExpression, Formula1:="=TRUE")
                .Interior.Color = RGB(255, 230, 153) ' Yellow color
            End With
        End If
    ' End If
    
    On Error GoTo 0
End Sub
This comment was minimized by the moderator on the site
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next

' Clear previous highlighting
Me.Cells.FormatConditions.Delete

' Check if a single cell or a range of cells is selected
If Target.Cells.Count = 1 Or Target.Cells.Count > 1 Then
Dim selectedRange As Range
Dim selectedRows As Range
Dim selectedColumns As Range

Set selectedRange = Target
Set selectedRows = Me.Range(Me.Cells(selectedRange.Row, 1), Me.Cells(selectedRange.Row + selectedRange.Rows.Count - 1, 1).EntireRow)
Set selectedColumns = Me.Range(Me.Cells(1, selectedRange.Column), Me.Cells(1, selectedRange.Column + selectedRange.Columns.Count - 1).EntireColumn)

' Add conditional formatting to highlight the selected rows
With selectedRows.FormatConditions.Add(Type:=xlExpression, Formula1:="=TRUE")
.Interior.Color = RGB(255, 230, 153) ' Yellow color
End With

' Add conditional formatting to highlight the selected columns
With selectedColumns.FormatConditions.Add(Type:=xlExpression, Formula1:="=TRUE")
.Interior.Color = RGB(255, 230, 153) ' Yellow color
End With
End If

On Error GoTo 0
End Sub
This comment was minimized by the moderator on the site
can you please post code in VBA format? trying to figure out what your code looks like from what you posted in a jumble is frustrating.
This comment was minimized by the moderator on the site
Hi,

The above code is brilliant. But i have two questions and if you can help then will be much appreciated. Let me know if there is cost associated with it.

1. The above code is removing my previous formatting of the cells. Eg. if i have got the cells filld with blue then above code clears that fill.
2. Is there a code that i can use when i am extracting values from another sheet and that row in the that sheet gets highlighted as well. Eg. I want to extract vale from another cell, so when i press = sign in sheet 1 and then when i move to sheet 2 to bring the value the row in the sheet doesn't get highlighted.

Regards,
This comment was minimized by the moderator on the site
Hello, Patel
For the first question:
It may be difficult to modify the VBA code, so, I recommend you to apply the Conditional Formatting feature for solving this problem, the following article may help you:
https://www.extendoffice.com/documents/excel/3500-excel-highlight-selected-row-conditional-formatting.html

Or you can use the Kutools for Excel' Reading Layout feature, you can try it 30 days for free.
Please download from: https://www.extendoffice.com/download/kutools-for-excel.html

For the second question:
Sorry, I can't solve this problem at present,😜
This comment was minimized by the moderator on the site
How do you modify the code so that:
1. It does not permanently strip existing colors of cells. Currently, after another cell is selected, it leaves colorless previous row. I'd like to keep the colors of the worksheet, as they were before row was highlighted by this code.
2. Limit the highlight width to only Columns A thru K, not the entire row.
This comment was minimized by the moderator on the site
Hello,
It may be difficult to modify the VBA code, so, here, I recommend you to apply the Conditional Formatting feature for solving this problem, please view the below article: (Note: if you need to highlight the column A to column K, you just need to select the range you need, and then apply the conditional formatting.)
https://www.extendoffice.com/documents/excel/3500-excel-highlight-selected-row-conditional-formatting.html


Or you can use the Kutools for Excel' Reading Layout feature, you can try it 30 days for free.
Please download from: https://www.extendoffice.com/download/kutools-for-excel.html

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Thank you so much for this tip!!!
Rated 5 out of 5
This comment was minimized by the moderator on the site
Another easy way to highlight your rows: https://youtu.be/iOF06mZDGIk
This comment was minimized by the moderator on the site
FAIL. Wiped out all my other cell formatting irreversibly. And doesn't work if the sheet is protected. FAIL.
This comment was minimized by the moderator on the site
Hi Gues,The code does not work in a protected worksheet. If you want to keep the original cell formatting, please try the below code.The Reading Layout feature of Kutools is stable and handy, maybe you can download a free trial to have a try.
<div data-tag="code">Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Update 202001106
Static xRow
Static xColumn

Dim xWs As Worksheet
Dim xCRg, xCRg1, xRRg, xRRg1, xOHRg As Range
Dim xAHRORg, xAHRORg1 As Range
Dim xAWs As Worksheet
Dim xFNum As Integer
Dim xCll As Range

On Error Resume Next

Application.ScreenUpdating = False
pRow = Selection.Row
pColumn = Selection.Column

Set xWs = ActiveWorkbook.Worksheets.Item("AutoHighlightRAndC")
Set xAWs = Target.Worksheet
If xWs Is Nothing Then
Set xWs = ActiveWorkbook.Worksheets.Add
xWs.Name = "AutoHighlightRAndC"
xWs.Visible = xlSheetHidden
xAWs.Activate
End If

If xColumn <> "" Then
Set xCRg = Columns(xColumn)
xCRg.Interior.ColorIndex = xlNone
Set xCRg = Intersect(xCRg.Worksheet.UsedRange, xCRg)
For xFNum = 1 To xCRg.Count
Set xAHRORg1 = xAWs.Cells(xFNum, xColumn)
Set xAHRORg = xWs.Cells(xFNum, xColumn)
xAHRORg1.Interior.ColorIndex = xAHRORg.Interior.ColorIndex
'xCRg.Item(xFNum).Interior.ColorIndex = xWs.Columns(xColumn).Item(xFNum).Interior.ColorIndex
Next

Set xRRg = Rows(xRow)
xRRg.Interior.ColorIndex = xlNone
Set xRRg = Intersect(xCRg.Worksheet.UsedRange, xCRg)
For xFNum = 1 To xRRg.Count
Set xAHRORg1 = xAWs.Cells(xRow, xFNum)
Set xAHRORg = xWs.Cells(xRow, xFNum)
xAHRORg1.Interior.ColorIndex = xAHRORg.Interior.ColorIndex
'xRRg.Item(xFNum).Interior.ColorIndex = xWs.Rows(xRow).Item(xFNum).Interior.ColorIndex
Next

End If

xRow = pRow
xColumn = pColumn

Set xCRg = Columns(pColumn)
Set xCRg1 = Intersect(xCRg.Worksheet.UsedRange, xCRg)
For xFNum = 1 To xCRg1.Count
Set xOHRg = xWs.Cells(xFNum, pColumn)
xOHRg.Interior.ColorIndex = xCRg1.Item(xFNum).Interior.ColorIndex
Next

Set xRRg = Rows(pRow)
Set xRRg1 = Intersect(xRRg.Worksheet.UsedRange, xRRg)

For xFNum = 1 To xRRg1.Count
Set xCll = xWs.Cells(pRow, xFNum)
xCll.Interior.ColorIndex = xRRg1.Item(xFNum).Interior.ColorIndex
Next
xCRg.Interior.ColorIndex = 34
xRRg.Interior.ColorIndex = 34
Application.ScreenUpdating = True
End Sub
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations