- 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:
Đâ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:
Ư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é
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
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
- Đơ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é