Đổi màu cho cell khi giá trị cell là " số thập phân " (1 người xem)

Liên hệ QC

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

thang314

Thành viên thường trực
Tham gia
10/1/11
Bài viết
324
Được thích
122
Nghề nghiệp
lại thất nghiệp
em đang làm code để làm một số việc nhưng đến đoạn này em hơi tắc.
em muốn kiểm tra giá trị của cell,
nếu cell nào có giá trị =0 -----> chuyển sang màu đỏ ( đã lamd được )
mycell.font.colorindex=3
nếu cell nào có giá trị <0 -----> chuyển sang màu đỏ (đã làm được )
mycell.font.colorindex=3
nếu cell nào có giá trị là số thập phân -----> chuyển sang màu đỏ mycell.font.colorindex=3
tạm thời em dùng
if mycell*10 mod 10 then ( đang rối )
mycell.font.colorindex=3 tuy nhiên nó lại bôi màu hết tất cả các cell có dữ liệu luôn( hiện tại em chỉ muốn bôi những cell có format là dạng số)
 
Bạn dùng hàm Round() rồi lấy số (mycell - Round(mycell,0))<> 0 thử xem
 
Upvote 0
Bạn có thể gửi file lên thử xem sao mình không chắc nữa!!!
 
Upvote 0
đây là file của em. vẫn vướng mắc một số điều??? nhờ các bác xem giúp. code của em chủ yếu của các bác trong diễn đàn mình.
 
Upvote 0
đây là file của mình. không biết lỗi gì nữa+-+-+-+
 

File đính kèm

Upvote 0
On Error Resume Next
Application.ScreenUpdating = False
Application.ScreenUpdating = False
Dim i As Long, k As Long
Dim rng As Range
Sheets(ListBox1.Value).Select
Cells.Select
Set rng = ActiveSheet.UsedRange
' Frm_Progress.Show
k = rng.Count
'k = 10000
For i = 1 To k
Frm_Progress.ProgressBar (i / k)
DoEvents
Next
' Frm_Progress.Hide
Dim myCell As Range, myFont As String
For Each myCell In rng
If myCell - Round(myCell, 0) <> 0 Then
myCell.Font.ColorIndex = 3
End If
If myCell.Value < 0 Then
myCell.Font.ColorIndex = 3
End If
If myCell.Value = 0 Then
myCell.Font.ColorIndex = 3
End If
code commandbutton chuyen fort
 
Upvote 0
Bạn gỡ password VBA rồi gửi lại file lên đây chứ. Nhờ sửa code mà bạn khóa VBA lại thì làm sao mà sửa được?!
 
Upvote 0
sory. em đã gửi lại, các bác thông cảm.
 

File đính kèm

Upvote 0
Bạn phải đóng mở ngoặc trong If (myCell.value - Round(myCell.value, 0)) <> 0 Then .....Mình nghĩ là bị lỗi trong này bạn xem lại xem
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn sửa điều kiện này thành Int(myCell) <> myCell xem sao.
 
Upvote 0
vẫn đâu có gì khác đâu nghiaphuc à.
 
Upvote 0
vẫn đâu có gì khác đâu nghiaphuc à.
Tôi không test được trên file của bạn do máy thiếu Control nhưng bạn thử file này xem sao.
Toàn bộ code như vầy:
PHP:
Sub ToMau()
    Dim myCell As Range
    For Each myCell In Sheet1.[A1].CurrentRegion
        If myCell < 0 Then
            myCell.Font.ColorIndex = 3
        ElseIf myCell = 0 Then
            myCell.Font.ColorIndex = 4
        ElseIf Int(myCell) <> myCell Then
            myCell.Font.ColorIndex = 5
        End If
    Next
End Sub
PHP:
Sub XoaMau()
    Sheet1.[A1].CurrentRegion.Font.ColorIndex = 1
End Sub
 

File đính kèm

Upvote 0
tương đối khó hiểu.
em đang dùng userform. dùng trực tiếp trên sheet không thấy vấn đề gì, hay em làm bị sai gì đó chăng???)*&^)

nghiaphuc à. vừa check lại. tuy nhiên code của nghiaphuc chi chạy được range với điều kiện là số à nha. còn yêu cầu là lấy các range nhưng chỉ có range chứa các số mới đổi màu thôi.

cụ thể file của em thế này. tuy nhiên em muốn kiểm tra các file khác nữa vì em tổng hợp toàn công ty mà. nó hơi nhiều mà chẳng bác nào tổng hợp lương giống bác nào hết.
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn có thể lồng thêm hàm để xác định đó là số thì mình tô mầu còn không thì bỏ qua với file của bạn thử code này xem.

PHP:
Sub ToMau()
    Dim myCell As Range
    For Each myCell In Sheet1.[A1].CurrentRegion
        If IsNumeric(myCell) Then
            If myCell.Value < 0 Then
                myCell.Font.ColorIndex = 3
            ElseIf myCell = 0 Then
                myCell.Font.ColorIndex = 4
            ElseIf Int(myCell) <> myCell Then
                myCell.Font.ColorIndex = 5
            End If
        End If
    Next
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom