Nếu ô đó không phải số nguyên thì tô màu! (1 người xem)

Liên hệ QC

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

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,065
Được thích
175
Em chào các anh/chị
Hiện nay em đang dùng CF để tô màu như sau:
Nếu ở dòng đó mà cột H =155 và cột I= 6322 mà cột M không phải là số nguyên thì tô màu ô của cột M
Hiện nay do cơ sở dữ liệu của em khá nhiều, nên nếu dùng CF nhiều quá thì File nó bị nặng
Nên từng bước em chuyển CF sang code
Em nhờ các anh chị viết giùm code (code trên module) em để thay CF trên. Em cảm ơn!
 

File đính kèm

Em chào các anh/chị
Hiện nay em đang dùng CF để tô màu như sau:
Nếu ở dòng đó mà cột H =155 và cột I= 6322 mà cột M không phải là số nguyên thì tô màu ô của cột M
Hiện nay do cơ sở dữ liệu của em khá nhiều, nên nếu dùng CF nhiều quá thì File nó bị nặng
Nên từng bước em chuyển CF sang code
Em nhờ các anh chị viết giùm code (code trên module) em để thay CF trên. Em cảm ơn!
Công thức cho CF
Mã:
=MOD($M9,1)<>0
 
Upvote 0
Mã:
Public Sub ToMau()
Dim i As Long, lr As Long
With Sheets("Sheet1")
        lr = .Range("H" & Rows.Count).End(xlUp).Row
        For i = 9 To lr
            If .Cells(i, "H") = 155 And .Cells(i, "I") = 6322 Then
                If .Cells(i, "M") <> Int(.Cells(i, "M")) Then
                    .Cells(i, "M").Interior.ColorIndex = 4
                Else
                    .Cells(i, "M").Interior.ColorIndex = 0
                End If
            End If
        Next
End With
End Sub
 
Upvote 0
Dựa vào bài #4 thì mình có thể viết code cho bài này thì thấy code quá dài, các anh/chị viết giúp cho code có thể ngắn hơn
Cụ thể File demo muốn tô màu chữ như sau:
Cột A là ngày tháng liên tục
Muốn tô màu chữ từ cột E đến cột N như sau
Nếu là số thì số <0 thì tô màu đỏ, số >0 thì tô màu xanh
Nếu là chữ "S" thì tô màu xanh & đậm
Nếu là chữ "1/2S" thì tô màu xanh
Nếu là chữ "C" thì tô màu đỏ & đậm
Nếu là chữ "1/2C" thì tô màu đỏ
Em cảm ơn!
 

File đính kèm

Upvote 0
Dựa vào bài #4 thì mình có thể viết code cho bài này thì thấy code quá dài, các anh/chị viết giúp cho code có thể ngắn hơn
Cụ thể File demo muốn tô màu chữ như sau:
Cột A là ngày tháng liên tục
Muốn tô màu chữ từ cột E đến cột N như sau
Nếu là số thì số <0 thì tô màu đỏ, số >0 thì tô màu xanh
Nếu là chữ "S" thì tô màu xanh & đậm
Nếu là chữ "1/2S" thì tô màu xanh
Nếu là chữ "C" thì tô màu đỏ & đậm
Nếu là chữ "1/2C" thì tô màu đỏ
Em cảm ơn!
Code của bạn dài đến cỡ nào sao không đưa lên, bạn thử:
PHP:
Sub abc()
    Dim Cell As Range
    For Each Cell In Selection
        If Cell < 0 Then
            Cell.Font.ColorIndex = 3
        ElseIf Cell.Value = "C" Then
            Cell.Font.ColorIndex = 3
            Cell.Font.Bold = True
        ElseIf Cell > 0 Then
            Cell.Font.ColorIndex = 10
        ElseIf Cell.Value = "S" Then
            Cell.Font.ColorIndex = 10
            Cell.Font.Bold = True
        End If
    Next
End Sub
 
Upvote 0
Cảm ơn bạn, nhưng sao mình thấy nó không tô đậm chữ "S", mặc dù trong code của bạn có chỉ định tô đậm nhỉ!?
Mượn code của @phulien1902 cho dễ đối chiếu
Mã:
Sub abc_()
    Dim Cell As Range
    For Each Cell In Selection
        If IsNumeric(Cell) Then
            If Cell < 0 Then Cell.Font.ColorIndex = 3
            If Cell > 0 Then Cell.Font.ColorIndex = 10
        Else
            If Cell = "1/2C" Then Cell.Font.ColorIndex = 3
            If Cell = "C" Then Cell.Font.ColorIndex = 3: Cell.Font.Bold = True
            If Cell = "1/2S" Then Cell.Font.ColorIndex = 10
            If Cell = "S" Then Cell.Font.ColorIndex = 10: Cell.Font.Bold = True
        End If
    Next
End Sub
 
Upvote 0
Code của bạn dài đến cỡ nào sao không đưa lên, bạn thử:
PHP:
Sub abc()
    Dim Cell As Range
    For Each Cell In Selection
        If Cell < 0 Then
            Cell.Font.ColorIndex = 3
        ElseIf Cell.Value = "C" Then
            Cell.Font.ColorIndex = 3
            Cell.Font.Bold = True
        ElseIf Cell > 0 Then
            Cell.Font.ColorIndex = 10
        ElseIf Cell.Value = "S" Then
            Cell.Font.ColorIndex = 10
            Cell.Font.Bold = True
        End If
    Next
End Sub
Mượn code của @phulien1902 cho dễ đối chiếu
Mã:
Sub abc_()
    Dim Cell As Range
    For Each Cell In Selection
        If IsNumeric(Cell) Then
            If Cell < 0 Then Cell.Font.ColorIndex = 3
            If Cell > 0 Then Cell.Font.ColorIndex = 10
        Else
            If Cell = "1/2C" Then Cell.Font.ColorIndex = 3
            If Cell = "C" Then Cell.Font.ColorIndex = 3: Cell.Font.Bold = True
            If Cell = "1/2S" Then Cell.Font.ColorIndex = 10
            If Cell = "S" Then Cell.Font.ColorIndex = 10: Cell.Font.Bold = True
        End If
    Next
End Sub
Theo nguyên tắc lập trình thì cả hai code trên đều có thiếu sót trầm trọng.
 
Upvote 0
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom