Add-In dùng để Highlight dòng, cột

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,950
Tôi chợt nghĩ ra được 1 code có thể dùng để Highlight dòng hoặc cột, dựa trên nền tảng Conditional Formating
Code như sau:
PHP:
Public Sub Highlight(SrcRng As Range, iColor As Long, Optional iType As Long = 1)
  Dim TmpRng As Range, rRng As Range, cRng As Range
  On Error Resume Next
  Set rRng = ActiveCell.EntireRow
  Set cRng = ActiveCell.EntireColumn
  Cells.FormatConditions.Delete
  Select Case iType
    Case 1: Set TmpRng = Intersect(SrcRng.Cells, rRng)
    Case 2: Set TmpRng = Intersect(SrcRng.Cells, cRng)
    Case 3: Set TmpRng = Intersect(SrcRng.Cells, Union(rRng, cRng))
    Case 4: Set TmpRng = Intersect(Range(SrcRng.Cells(1, 1), ActiveCell), Union(rRng, cRng))
  End Select
  If Application.CutCopyMode = False Then
    TmpRng.FormatConditions.Add 2, , "TRUE"
    TmpRng.FormatConditions(1).Interior.ColorIndex = iColor
  End If
End Sub
Đây là code chính! Để có thể Hightlight dòng, cột tại sheet1, các bạn viết thêm 1 code cho sheet như sau:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B3:M30], Target) Is Nothing Then
    Highlight [B3:M30], 5, 1 '<--- đổi số này từ 1 đến 4 để cho ra 4 kiểu HighLight
  End If
End Sub
Ưu điểm của code:
- Đơn giản và đáp ứng nhanh
- Không ảnh hưởng đến các màu sắc do ta tô sẳn trước đó
- Có 4 tùy chọn Highlight
- Có thể Save file thành 1 Add-In để dùng lâu dài (xóa code SelectionChange, chừa lại Module trước khi lưu)
Nhược điểm:
- Trên vùng hoạt động của code, ta không thể thêm bất kỳ điều kiện tô màu nào khác
---------------------------------------------
Các bạn xem file và góp ý hoàn thiện code nhé
 

File đính kèm

@beo87 bạn xem bên bài viết này có phù hợp với ý muốn của bạn không

 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom