Xin giúp đỡ về tô màu trong excel

Liên hệ QC

bibim2014

Thành viên hoạt động
Tham gia
1/7/16
Bài viết
166
Được thích
96
Xin chào tất cả anh/chị/em trong diễn đàn giải pháp Excel.
Em có tập tành viết code VBA, hiện tại em đang gặp vướng mắc ở chỗ dùng If và AND nhưng nó đang bị lỗi ạ.
1. em đang muốn nếu cột A, các ngày nhỏ hơn ngày hôm nay today(), và cột B rỗng, thì nó sẽ hiện màu vàng.
2. các anh/chị/em có thể giúp mình phần bôi màu tím khi ngày ở cột A lớn hơn today()+2 được không ạ. Hiện tại em có làm nhưng chỗ này hình như nó đang bị sai.
Em xin chân thành cám ơn!
Chúc cả nhà tuần mới tốt lành ạ!
 

File đính kèm

Xin chào tất cả anh/chị/em trong diễn đàn giải pháp Excel.
Em có tập tành viết code VBA, hiện tại em đang gặp vướng mắc ở chỗ dùng If và AND nhưng nó đang bị lỗi ạ.
1. em đang muốn nếu cột A, các ngày nhỏ hơn ngày hôm nay today(), và cột B rỗng, thì nó sẽ hiện màu vàng.
2. các anh/chị/em có thể giúp mình phần bôi màu tím khi ngày ở cột A lớn hơn today()+2 được không ạ. Hiện tại em có làm nhưng chỗ này hình như nó đang bị sai.
Em xin chân thành cám ơn!
Chúc cả nhà tuần mới tốt lành ạ!
Dùng Conditional Formatting cũng được, đâu cần code.
 
Xin chào tất cả anh/chị/em trong diễn đàn giải pháp Excel.
Em có tập tành viết code VBA, hiện tại em đang gặp vướng mắc ở chỗ dùng If và AND nhưng nó đang bị lỗi ạ.
1. em đang muốn nếu cột A, các ngày nhỏ hơn ngày hôm nay today(), và cột B rỗng, thì nó sẽ hiện màu vàng.
2. các anh/chị/em có thể giúp mình phần bôi màu tím khi ngày ở cột A lớn hơn today()+2 được không ạ. Hiện tại em có làm nhưng chỗ này hình như nó đang bị sai.
Em xin chân thành cám ơn!
Chúc cả nhà tuần mới tốt lành ạ!
Thử:
PHP:
Sub ToMau()
    Dim i&, LR&
    LR = Range("A2").End(4).Row
    For i = 2 To LR
        If Cells(i, 1).Value < Date And Cells(i, 2) = Empty Then
            Cells(i, 1).Resize(, 2).Interior.ColorIndex = 6
        ElseIf Cells(i, 1).Value > Date + 2 Then
            Cells(i, 1).Resize(, 2).Interior.ColorIndex = 13
        End If
    Next i
End Sub

Hoặc
PHP:
Sub ToMau2()
    Dim Cll As Range
    For Each Cll In Range("a2:a50")
        If IsDate(Cll.Value) And Cll.Value < Date And Cll.Offset(, 1) = "" Then
            Cll.Resize(, 2).Interior.ColorIndex = 6
        ElseIf Cll.Value > Date + 2 Then
            Cll.Interior.ColorIndex = 13
        End If
    Next
End Sub
 
Lần chỉnh sửa cuối:
Dùng Conditional Formatting cũng được, đâu cần code.
Dạ thưa anh, em có đang dùng conditional Formating, tuy nhiên nó hay bị như hình vẽ bên dưới,mà em cứ phải đi sửa suốt ạ.
1532934489417.png
Nên em mới thử dùng code xem nó có mất được hạn chế này không?
Em cám ơn anh đã góp ý ạ.
Chúc anh tuần mới vui vẻ!
 
Thử:
PHP:
Sub ToMau()
    Dim i&, LR&
    LR = Range("A2").End(4).Row
    For i = 2 To LR
        If Cells(i, 1).Value < Date And Cells(i, 2) = Empty Then
            Cells(i, 1).Resize(, 2).Interior.ColorIndex = 6
        ElseIf Cells(i, 1).Value > Date + 2 Then
            Cells(i, 1).Resize(, 2).Interior.ColorIndex = 13
        End If
    Next i
End Sub

Hoặc
PHP:
Sub ToMau2()
    Dim Cll As Range
    For Each Cll In Range("a2:a50")
        If IsDate(Cll.Value) And Cll.Value < Date And Cll.Offset(, 1) = "" Then
            Cll.Resize(, 2).Interior.ColorIndex = 6
        ElseIf Cll.Value > Date + 2 Then
            Cll.Interior.ColorIndex = 13
        End If
    Next
End Sub
Xin chào anh @phulien1902 !
Code của anh hay quá ạ, Em cám ơn anh nhiều! Chúc anh ngày mới tốt lành ạ.
 
Web KT

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

Back
Top Bottom