Bỏ qua nội dung chính

Việc điều hướng qua các trang tính Excel rộng lớn chứa đầy dữ liệu có thể là một thách thức và bạn rất dễ bị mất dấu vị trí hoặc các giá trị bị đọc sai. Để nâng cao khả năng phân tích dữ liệu của bạn và giảm khả năng xảy ra lỗi, chúng tôi sẽ giới thiệu 3 cách khác nhau để tự động đánh dấu hàng và cột của ô đã chọn trong Excel. Khi bạn di chuyển từ ô này sang ô khác, phần đánh dấu sẽ thay đổi linh hoạt, cung cấp gợi ý trực quan rõ ràng và trực quan để giúp bạn tập trung vào dữ liệu chính xác như minh họa sau:

Tự động highlight hàng và cột đang hoạt động trong Excel


Video: Tự động highlight hàng, cột đang hoạt động trong Excel


Tự động đánh dấu hàng và cột đang hoạt động bằng mã VBA

Để tự động đánh dấu toàn bộ cột và hàng của ô đã chọn trong bảng tính hiện tại, mã VBA sau có thể giúp bạn đạt được nhiệm vụ này.

Bước 1: Mở bảng tính nơi bạn muốn tự động đánh dấu hàng và cột đang hoạt động

Bước 2: Mở trình soạn thảo mô-đun trang tính VBA và sao chép mã

  1. Bấm chuột phải vào tên trang tính và chọn Mã Chế độ xem từ menu ngữ cảnh, xem ảnh chụp màn hình:
  2. Trong trình chỉnh sửa mô-đun trang tính VBA đã mở, hãy sao chép và dán đoạn mã sau vào mô-đun trống. Xem ảnh chụp màn hình:
    Mã VBA: tự động tô sáng hàng và cột của ô đã chọn
    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
    
    Mẹo: Tùy chỉnh mã
    • Để thay đổi màu đánh dấu, bạn chỉ cần sửa đổi giá trị RGB trong các tập lệnh sau:
      rowRange.Interior.Color = RGB(248, 150, 171)
      colRange.Interior.Color = RGB(173, 233, 249)
    • Để chỉ đánh dấu toàn bộ hàng của ô đã chọn, hãy xóa hoặc nhận xét (thêm dấu nháy đơn ở phía trước) dòng này:
      colRange.Interior.Color = RGB(173, 233, 249)
    • Để chỉ đánh dấu toàn bộ cột của ô đã chọn, hãy xóa hoặc nhận xét (thêm dấu nháy đơn ở phía trước) dòng này:
      rowRange.Interior.Color = RGB(248, 150, 171)

  3. Sau đó, đóng cửa sổ soạn thảo VBA để quay lại bảng tính.

Kết quả:

Bây giờ, khi bạn chọn một ô, toàn bộ hàng và cột của ô đó sẽ tự động được tô sáng và phần đánh dấu sẽ tự động thay đổi khi ô được chọn thay đổi như minh họa bên dưới:

Ghi chú:
  • Mã này sẽ xóa màu nền khỏi tất cả các ô trong trang tính, vì vậy, hãy tránh sử dụng giải pháp này nếu bạn có các ô có màu tùy chỉnh.
  • Chạy mã này sẽ vô hiệu hóa Undo trong trang tính, nghĩa là bạn không thể khắc phục bất kỳ lỗi nào bằng cách nhấn nút Ctrl + Z đường tắt.
  • Mã này sẽ không hoạt động trong bảng tính được bảo vệ.
  • Để ngừng đánh dấu hàng và cột của ô đã chọn, bạn cần xóa mã VBA đã thêm trước đó. Sau đó, để đặt lại phần đánh dấu bằng cách nhấp vào Trang Chủ > Tô màu > Không có điền.

Tự động đánh dấu hàng và cột đang hoạt động chỉ bằng một cú nhấp chuột Kutools

Đối mặt với những hạn chế của mã VBA trong Excel? Kutools cho Excel's Tiêu điểm lưới tính năng này là giải pháp lý tưởng của bạn! Được thiết kế để giải quyết những thiếu sót của VBA, nó cung cấp một loạt các kiểu đánh dấu đa dạng để nâng cao trải nghiệm trang tính của bạn. Với khả năng áp dụng các kiểu này trên tất cả các sổ làm việc đang mở, Kutools đảm bảo một quy trình quản lý dữ liệu hấp dẫn và hiệu quả nhất quán.

Chú thích: Nếu bạn muốn sử dụng cái này Tiêu điểm lưới tính năng, xin vui lòng tải xuống và cài đặt Kutools cho Excel đầu tiên.

Sau khi cài đặt Kutools cho Excel, Xin vui lòng bấm vào Kutools > Tiêu điểm lưới để kích hoạt tính năng này. Bây giờ, bạn có thể thấy hàng và cột của ô hiện hoạt được tô sáng ngay lập tức. Điểm đánh dấu này sẽ tự động chuyển sang theo sau khi bạn thay đổi lựa chọn ô của mình. Xem bản demo bên dưới:

Lợi ích chính của tính năng Grid Focus:
  • Giữ nguyên màu nền ô gốc:
    Không giống như mã VBA, tính năng này tôn trọng định dạng hiện có của bảng tính của bạn.
  • Có thể sử dụng trong các trang tính được bảo vệ:
    Tính năng này hoạt động liền mạch trong các trang tính được bảo vệ, khiến nó trở nên lý tưởng để quản lý các tài liệu nhạy cảm hoặc được chia sẻ mà không ảnh hưởng đến bảo mật.
  • Không ảnh hưởng đến chức năng Hoàn tác:
    Với tính năng này, bạn có toàn quyền truy cập vào chức năng hoàn tác của Excel. Điều này đảm bảo rằng bạn có thể dễ dàng hoàn nguyên các thay đổi, thêm một lớp an toàn cho thao tác dữ liệu của mình.
  • Hiệu suất ổn định với dữ liệu lớn:
    Tính năng này được thiết kế để xử lý các tập dữ liệu lớn một cách hiệu quả, đảm bảo hiệu suất ổn định ngay cả trong các bảng tính phức tạp và sử dụng nhiều dữ liệu.
  • Nhiều kiểu làm nổi bật:
    Tính năng này cung cấp nhiều tùy chọn tô sáng khác nhau, cho phép bạn chọn từ các kiểu và màu sắc khác nhau để làm nổi bật ô hiện hoạt của hàng, cột hoặc hàng và cột theo cách phù hợp nhất với sở thích và nhu cầu của bạn.
Lời khuyên:
  • Để tắt tính năng này, vui lòng nhấp vào Kutools > Tiêu điểm lưới một lần nữa để đóng chức năng này;
  • Để áp dụng tính năng này, vui lòng tải xuống và cài đặt Kutools cho Excel đầu tiên.

Tự động đánh dấu hàng và cột đang hoạt động bằng Định dạng có điều kiện

Trong Excel, bạn cũng có thể thiết lập Định dạng có điều kiện để tự động đánh dấu hàng và cột đang hoạt động. Để thiết lập tính năng này, vui lòng làm theo các bước sau:

Bước 1: Chọn vùng dữ liệu

Đầu tiên, chọn phạm vi ô bạn muốn áp dụng tính năng này. Đây có thể là toàn bộ trang tính hoặc một tập dữ liệu cụ thể. Ở đây tôi sẽ chọn toàn bộ bảng tính.

Bước 2: Truy cập định dạng có điều kiện

Nhấp chuột Trang Chủ > Định dạng có điều kiện > Quy tắc mới, xem ảnh chụp màn hình:

Bước 3: Thiết lập các thao tác trong New Formatting Rule

  1. Trong tạp chí Quy tắc định dạng mới hộp thoại, chọn Sử dụng công thức để xác định ô cần định dạng từ Chọn một loại quy tắc hộp danh sách.
  2. Trong tạp chí Định dạng các giá trị trong đó công thức này đúng Trong hộp, hãy nhập một trong các công thức này, trong ví dụ này, tôi sẽ áp dụng công thức thứ ba để đánh dấu hàng và cột đang hoạt động.
    Để đánh dấu hàng đang hoạt động:
    =CELL("row")=ROW()
    Để đánh dấu cột đang hoạt động:
    =CELL("col")=COLUMN()
    Để đánh dấu hàng và cột đang hoạt động:
    =OR(CELL("row")=ROW(), CELL("col")= COLUMN())
  3. Sau đó nhấn vào Định dạng .
  4. Trong những điều sau đây Format Cells hộp thoại, bên dưới Điền tab, chọn một màu để đánh dấu hàng và cột đang hoạt động nếu bạn cần, xem ảnh chụp màn hình:
  5. Sau đó nhấn vào OK > OK để đóng hộp thoại.

Kết quả:

Bây giờ, bạn có thể thấy toàn bộ cột và hàng ô A1 đã được đánh dấu cùng một lúc. Để áp dụng phần tô sáng này cho một ô khác, chỉ cần nhấp vào ô bạn muốn và nhấn nút F9 để làm mới trang tính, sau đó sẽ đánh dấu toàn bộ cột và hàng của ô mới được chọn.

Lời khuyên: 
  • Thật vậy, mặc dù phương pháp Định dạng có điều kiện để đánh dấu trong Excel đưa ra một giải pháp nhưng nó không liền mạch như sử dụng VBATiêu điểm lưới tính năng. Phương pháp này đòi hỏi phải tính toán lại trang tính theo cách thủ công (thực hiện bằng cách nhấn nút F9 Chìa khóa).
    Để bật tính năng tự động tính toán lại trang tính của bạn, bạn có thể kết hợp mã VBA đơn giản vào mô-đun mã của trang tính mục tiêu. Điều này sẽ tự động hóa quá trình làm mới, đảm bảo đánh dấu các bản cập nhật ngay lập tức khi bạn chọn các ô khác nhau mà không cần nhấn nút F9 chìa khóa. Hãy nhấp chuột phải vào tên trang tính rồi chọn Mã Chế độ xem từ menu ngữ cảnh. Sau đó sao chép và dán đoạn mã sau vào mô-đun trang tính:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Target.Calculate
    End Sub
    
  • Định dạng có điều kiện giữ nguyên định dạng hiện có mà bạn đã áp dụng thủ công cho bảng tính của mình.
  • Định dạng có điều kiện được biết là không ổn định, đặc biệt khi áp dụng cho các tập dữ liệu rất lớn. Việc sử dụng rộng rãi nó có thể làm chậm hiệu suất sổ làm việc của bạn, ảnh hưởng đến hiệu quả xử lý và dẫn hướng dữ liệu.
  • Hàm CELL chỉ có ở phiên bản Excel 2007 trở lên, phương pháp này không tương thích với các phiên bản Excel trước đó.

So sánh các phương pháp trên

Đặc tính Mã VBA Định dạng có điều kiện Kutools cho Excel
Giữ nguyên màu nền ô Không
Hỗ trợ hoàn tác Không
Ổn định trong tập dữ liệu lớn Không Không
Có thể sử dụng trong các trang tính được bảo vệ Không
Áp dụng cho tất cả các sổ làm việc đang mở Chỉ trang tính hiện tại Chỉ trang tính hiện tại Tất cả các sổ làm việc đang mở
Yêu cầu làm mới thủ công (F9) Không Không

Điều đó kết thúc hướng dẫn của chúng tôi về cách đánh dấu cột và hàng của ô đã chọn trong Excel. Nếu bạn muốn khám phá thêm các mẹo và thủ thuật Excel, trang web của chúng tôi cung cấp hàng nghìn bài hướng dẫn, vui lòng bấm vào đây để truy cập chúng. Cảm ơn bạn đã đọc và chúng tôi mong muốn cung cấp cho bạn nhiều thông tin hữu ích hơn trong tương lai!


Bài viết liên quan:

  • Tự động tô sáng hàng và cột của ô hiện hoạt
  • Khi bạn xem một trang tính lớn với nhiều dữ liệu, bạn có thể muốn đánh dấu hàng và cột của ô đã chọn để bạn có thể đọc dữ liệu một cách dễ dàng và trực quan để tránh đọc nhầm. Sau đây, tôi có thể giới thiệu cho bạn một số thủ thuật thú vị để tô sáng hàng và cột của ô hiện tại, khi ô được thay đổi, cột và hàng của ô mới sẽ tự động được tô sáng.
  • Đánh dấu mọi hàng hoặc cột khác trong Excel
  • Trong một bảng tính lớn, việc đánh dấu hoặc điền vào từng hàng hoặc cột thứ n sẽ cải thiện khả năng hiển thị và khả năng đọc dữ liệu. Nó không chỉ làm cho bảng tính trông gọn gàng hơn mà còn giúp bạn hiểu dữ liệu nhanh hơn. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn các phương pháp khác nhau để tô màu cho mỗi hàng hoặc cột thứ n, giúp bạn trình bày dữ liệu của mình theo cách hấp dẫn và đơn giản hơn.
  • Đánh dấu toàn bộ/toàn bộ hàng trong khi cuộn
  • Nếu bạn có một trang tính lớn với nhiều cột, bạn sẽ khó phân biệt dữ liệu trên hàng đó. Trong trường hợp này, bạn có thể đánh dấu toàn bộ hàng của ô đang hoạt động để có thể xem nhanh và dễ dàng dữ liệu trong hàng đó khi bạn cuộn thanh cuộn ngang xuống. Bài viết này, tôi sẽ nói về một số thủ thuật để bạn giải quyết vấn đề này. .
  • Đánh dấu các hàng dựa trên danh sách thả xuống
  • Bài viết này sẽ nói về cách đánh dấu các hàng dựa trên danh sách thả xuống, lấy ví dụ như ảnh chụp màn hình sau đây, khi tôi chọn “Đang tiến hành” từ danh sách thả xuống trong cột E, tôi cần đánh dấu hàng này bằng màu đỏ, khi tôi chọn “Đã hoàn thành” từ danh sách thả xuống, tôi cần đánh dấu hàng này bằng màu xanh lam và khi tôi chọn “Chưa bắt đầu”, màu xanh lục sẽ được sử dụng để đánh dấu hàng.
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