Hỏi: Liệu có cách tô màu cả dòng khi 1 ô thoả điều kiện? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

autokiss

Thành viên hoạt động
Tham gia
22/12/07
Bài viết
173
Được thích
11
Chào các bạn, mình có dùng CF để tô màu 1 ô nhưng nếu quét cả cho cả những ô khác thì số ô dùng CF nhiều làm cho chậm file Excel. Vậy mình muốn hỏi có cách nào để tô màu 1 dòng khi 1 ô của dòng thỏa điều kiện không?

Ví dụ nếu ô A1>0 thì tự động tô màu cả dòng luôn.
 
Không dùng CF thì phải xài Macro mới được...Mà phải có file chứ

Mình gửi tạm 1 file ví dụ như thế này bạn xem giúp mình với. Công thức sẽ được áp dụng cho cả cột E luôn chứ không giới hạn trong bảng.
 

File đính kèm

Dùng Code ví dụ bạn nha, chắc bạn biết dùng rồi nhỉ?
Mã:
Sub Tomau()
    Dim cls As Range
    For Each cls In Range("E5:E" & Range("E65536").End(3).Row)
        If cls > 0 Then
            cls.EntireRow.Interior.Color = 255
        End If
    Next
End Su
 
Mình gửi tạm 1 file ví dụ như thế này bạn xem giúp mình với. Công thức sẽ được áp dụng cho cả cột E luôn chứ không giới hạn trong bảng.
PHP:
Sub Tomau()
    Dim i As Long, LR As Long
    With Sheets(1)
        LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        For i = 1 To LR
            If .Cells(i, "E").Value > 20000 Then
                .Cells(i, "A").EntireRow.Interior.ColorIndex = 3
            End If
        Next
    End With
End Sub
 
1.jpgCái này không cần code.
Bạn chọn toàn bộ bảng tính. Chọn Conditional format gõ công thức sau vào ô điều kiện:
=$E1>20000
Chọn kiểu định dạng tùy ý (theo như bạn là Fill màu đỏ)
OK 2 lần là xong
1.jpg
 
Lần chỉnh sửa cuối:
View attachment 158330Cái này không cần code.
Bạn chọn toàn bộ bảng tính. Chọn Conditional format gõ công thức sau vào ô điều kiện:
=$E1>20000
Chọn kiểu định dạng tùy ý (theo như bạn là Fill màu đỏ)
OK 2 lần là xong
View attachment 158330


Hi bạn, mình cần tô màu cả row luôn chứ không riêng gì cell cột E bạn à. Tks bạn nhiều!


PHP:
Sub Tomau()
    Dim i As Long, LR As Long
    With Sheets(1)
        LR = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        For i = 1 To LR
            If .Cells(i, "E").Value > 20000 Then
                .Cells(i, "A").EntireRow.Interior.ColorIndex = 3
            End If
        Next
    End With
End Sub

Dùng Code ví dụ bạn nha, chắc bạn biết dùng rồi nhỉ?
Mã:
Sub Tomau()
    Dim cls As Range
    For Each cls In Range("E5:E" & Range("E65536").End(3).Row)
        If cls > 0 Then
            cls.EntireRow.Interior.Color = 255
        End If
    Next
End Su

Cảm ơn các bạn, mình test 2 code đều chạy bình thường nhưng chỉ chạy khi run nó hoặc dùng phím tắt, command button. Bây giờ mình muốn nó cập nhật 1 cách tự động giống như CF tức là khi ô E10 > 20.000 thì tự động bôi đỏ cả dòng và khi <=20.000 thì nó không đổi màu có được không?
 
Hi bạn, mình cần tô màu cả row luôn chứ không riêng gì cell cột E bạn à. Tks bạn nhiều!
Cảm ơn các bạn, mình test 2 code đều chạy bình thường nhưng chỉ chạy khi run nó hoặc dùng phím tắt, command button. Bây giờ mình muốn nó cập nhật 1 cách tự động giống như CF tức là khi ô E10 > 20.000 thì tự động bôi đỏ cả dòng và khi <=20.000 thì nó không đổi màu có được không?
Thì bạn cứ đưa code vào sự kiện Worksheet_Change cho sheet là được.
 
Hi bạn, mình cần tô màu cả row luôn chứ không riêng gì cell cột E bạn à. Tks bạn nhiều!






Cảm ơn các bạn, mình test 2 code đều chạy bình thường nhưng chỉ chạy khi run nó hoặc dùng phím tắt, command button. Bây giờ mình muốn nó cập nhật 1 cách tự động giống như CF tức là khi ô E10 > 20.000 thì tự động bôi đỏ cả dòng và khi <=20.000 thì nó không đổi màu có được không?
Bạn làm theo hướng dẫn chưa mà bảo là cách đó chỉ tô được Cell cột E???**~****~****~**
 
Hi bạn, mình cần tô màu cả row luôn chứ không riêng gì cell cột E bạn à. Tks bạn nhiều!






Cảm ơn các bạn, mình test 2 code đều chạy bình thường nhưng chỉ chạy khi run nó hoặc dùng phím tắt, command button. Bây giờ mình muốn nó cập nhật 1 cách tự động giống như CF tức là khi ô E10 > 20.000 thì tự động bôi đỏ cả dòng và khi <=20.000 thì nó không đổi màu có được không?
Thử với:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 Then
        If Target.Value > 20000 Then
            Target.EntireRow.Interior.Color = 255
        ElseIf Target.Value <= 20000 Then
            Target.EntireRow.Interior.Color = xlNone
        End If
    End If
End Sub
 
Thử với:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 Then
        If Target.Value > 20000 Then
            Target.EntireRow.Interior.Color = 255
        ElseIf Target.Value <= 20000 Then
            Target.EntireRow.Interior.Color = xlNone
        End If
    End If
End Sub
Cái này mình chọn nhiều ô cùng lúc xảy ra lỗi bác ơi.
 
Hi bạn, mình cần tô màu cả row luôn chứ không riêng gì cell cột E bạn à. Tks bạn nhiều!
Mình đã nói là cái này không cần code mà bạn. Bạn đã thử chưa mà nói là cái này nó chỉ tô màu riengs cell cột E. Thử đi bạn để thấy vấn đề đơn giản như thế nào.
 
Web KT

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

Back
Top Bottom