hoanglocphat
Thành viên thường trực
- Tham gia
- 27/1/13
- Bài viết
- 258
- Được thích
- 30
Dùng 1 hàm tự tạo (*) đếm xem vùng muốn đếm có bao nhiêu ô có màu. Rồi tự triển khai phần còn lại.Các bạn giúp mình code như sau:
Mình có trang DuLieu, trong trang có rất nhiều dữ liệu (dữ liệu từ A4: D10.000).
Nếu trong A4: D10.000 có 1 hay nhiều ô, tô màu nền đỏ thì code thông báo "có ô màu đỏ" (không cần thông báo ô nào). Xin cảm ơn
Option Explicit
Sub timkiem()
Dim i&, j&
For i = 1 To 10000
For j = 1 To 4
If Range("A1:D10000").Cells(i, j).Interior.ColorIndex = 3 Then
MsgBox "Co o mau do"
Exit Sub
End If
Next
Next
MsgBox "Khong co o mau do"
End Sub
Màu do code tự tô bạn ạ!Màu này tự tô hay do dùng định dạng? Hay cả hai?
.
Màu do code tự tô bạn ạ!
Đỏ có rất nhiều loại đỏ. Nếu đỏ kiểu vbRed thì dễ rồi, chứ tô đại màu đỏ nào đó thì code tìm cả ngày không ra.Các bạn giúp mình code như sau:
Mình có trang DuLieu, trong trang có rất nhiều dữ liệu (dữ liệu từ A4: D10.000).
Nếu trong A4: D10.000 có 1 hay nhiều ô, tô màu nền đỏ thì code thông báo "có ô màu đỏ" (không cần thông báo ô nào). Xin cảm ơn
Nếu không có ô đỏ nào thì code này gọi hàm dựng Range("A1: D10000") tất cả 4x10000 lần.For i = 1 To 10000
For j = 1 To 4
If Range("A110000").Cells(i, j).Interior.ColorIndex = 3 Then
MsgBox "Co o mau do"
Exit Sub
End If
Next
Next
Trong 2 cách thì đều duyệt 4*10.000 = 40.000 lần, nếu không có ô màu đỏNếu không có ô đỏ nào thì code này gọi hàm dựng Range("A1: D10000") tất cả 4x10000 lần.
Nếu code For Each cll In Range("A: D10000") thì chỉ gọi 1 lần
Tôi thì lại không hiểu tại sao phải là Range("A1: D10000").Cells(i, j) mà không là Cells(i, j)Trong 2 cách thì đều duyệt 4*10.000 = 40.000 lần, nếu không có ô màu đỏ
Còn dựng Range 40.000 lần thì em chưa rõ ý anh?
Range dùng như trên là một thuộc tính của WorkSheet.Trong 2 cách thì đều duyệt 4*10.000 = 40.000 lần, nếu không có ô màu đỏ
Còn dựng Range 40.000 lần thì em chưa rõ ý anh?
Function TimMauDo(rg As Range) As Boolean
Application.FindFormat.Clear
Application.FindFormat.Interior.ColorIndex = MAUDO
Dim GuiltyCell As Range
Set GuiltyCell = Range("A1: D10000).Find(What:="", After:=Cells(1, 1), _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=True)
TimMauDo = (Not GuiltyCell Is Nothing)
End Function