Cô Bé Dễ Thương
Thành viên thường trực
- Tham gia
- 30/9/16
- Bài viết
- 223
- Được thích
- 48
- Giới tính
- Nữ
Em cảm ơn thầy.Không nên viết tiêu đề gợi cảm xúc
Chạy code sau, sau đó CountIf với F là sum C, D, E
View attachment 254072Mã:Sub CellColor() For Each cel In Union(Range("h5:j8"), Range("C5:E14")) cel.Value = cel.Interior.Color cel.Font.Color = cel.Value Next End Sub
Thì cứ dùng phương pháp "cổ điển gia truyền của GPE": đít sần
For Each rg In Range("M5:Q14").Rows
ki = CStr(rg.Cells(1,1).Interior.Color) & "|" & CStr(rg.Cells(1,2).Interior.Color) & "|" & CStr(rg.Cells(1,3).Interior.Color)
ditSan(ki) = ditSan(ki) + 1
Next rg
Set rg = Range("g5:k5").ReSize(ditSan.Count, )
For i = 1 To ditSan.Count
ki = Split(diSan.Keys()(i-1), "|")
rg.Cells(i, 1).Value = i
rg.Cells(i, 2).Interior.Color = CLng(ki(0))
rg.Cells(i, 3).Interior.Color = CLng(ki(1))
rg.Cells(i, 4).Interior.Color = CLng(ki(2))
rg.Cells(i, 5).Value = ditSan.Items()(i-1)
Next i
Cái nào cũng dc ạ!Dùng VBA để viết Sub hay Function?
Public Function CountColors(ByVal rngData As Range, ByVal rngTemp As Range) As Long
Application.Volatile
Dim i As Long, j As Long
Dim col As Long
col = rngData.Columns.Count
For i = 1 To rngData.Rows.Count
For j = 1 To col
If rngData.Cells(i, j).Interior.Color <> rngTemp.Cells(1, j).Interior.Color Then Exit For
Next j
If j > col Then CountColors = CountColors + 1
Next i
End Function
Vâng.Quá tuyệt vời, Phần mềm này Mỹ tạo ra cho người Việt dùng.Code chay thích lắm ạ.Cảm ơn thầy đã giúp em ạ.Thử UDF này:
Trong ô K5 nhập:PHP:Public Function CountColors(ByVal rngData As Range, ByVal rngTemp As Range) As Long Application.Volatile Dim i As Long, j As Long Dim col As Long col = rngData.Columns.Count For i = 1 To rngData.Rows.Count For j = 1 To col If rngData.Cells(i, j).Interior.Color <> rngTemp.Cells(1, j).Interior.Color Then Exit For Next j If j > col Then CountColors = CountColors + 1 Next i End Function
=CountColors($C$5:$E$14,H5:J5)
Dí cái gì vào cái gì và tòi ra cái gì? Toàn dùng từ gợi cảm ... xúc. Tôi có code (cũng đít sần) nhưng không dí cũng không tòiRồi em dí 1 cái nó tòi ra ở cột K không ạ?
Sub CountColor()
Dim Dict, SampleRng As Range, DataRng As Range
Dim LastRw As Long, TotalColor As Long, RArr(), Tmp As Long
With Sheet1
LastRw = .Cells(1000, 2).End(xlUp).Row
Set SampleRng = .Range("H5:J8")
Set DataRng = .Range("C5:E" & LastRw)
Set Dict = CreateObject("Scripting.Dictionary")
For i = 1 To SampleRng.Rows.Count
TotalColor = SampleRng.Cells(i, 1).Interior.Color + _
SampleRng.Cells(i, 2).Interior.Color + _
SampleRng.Cells(i, 3).Interior.Color
Dict.Add TotalColor, i
Next
ReDim RArr(1 To Dict.Count, 1 To 1)
For i = 1 To DataRng.Rows.Count
TotalColor = DataRng.Cells(i, 1).Interior.Color + _
DataRng.Cells(i, 2).Interior.Color + _
DataRng.Cells(i, 3).Interior.Color
Tmp = Dict.Item(TotalColor)
RArr(Tmp, 1) = RArr(Tmp, 1) + 1
Next
.Range("K5").Resize(Dict.Count, 1) = RArr
End With
End Sub
Mừng quá. Nhân đây em chúc thầy và các thầy hay giúp đỡ các em be bé như chúng em năm mới nhiều sức khỏe và thành đạt, thông công.Dí cái gì vào cái gì và tòi ra cái gì? Toàn dùng từ gợi cảm ... xúc. Tôi có code (cũng đít sần) nhưng không dí cũng không tòi
Nhớ xoá trắng bên dưới dữ liệu cột BPHP:Sub CountColor() Dim DictColor, SampleRng As Range, DataRng As Range Dim LastRw As Long, TotalColor As Long, RArr(), Tmp As Long With Sheet1 LastRw = .Cells(1000, 2).End(xlUp).Row Set SampleRng = .Range("H5:J8") Set DataRng = .Range("C5:E" & LastRw) Set dict = CreateObject("Scripting.Dictionary") For i = 1 To SampleRng.Rows.Count TotalColor = SampleRng.Cells(i, 1).Interior.Color + _ SampleRng.Cells(i, 2).Interior.Color + _ SampleRng.Cells(i, 3).Interior.Color dict.Add TotalColor, i Next ReDim RArr(1 To dict.Count, 1 To 1) For i = 1 To DataRng.Rows.Count TotalColor = DataRng.Cells(i, 1).Interior.Color + _ DataRng.Cells(i, 2).Interior.Color + _ DataRng.Cells(i, 3).Interior.Color Tmp = dict.Item(TotalColor) RArr(Tmp, 1) = RArr(Tmp, 1) + 1 Next .Range("K5").Resize(dict.Count, 1) = RArr End With End Sub
Em không thấy có mục donate nhỉ. Một diễn đàn tuyệt vời.Lại gợi cảm ... xúc, sao lại thông cống?
Một câu hỏi Hóc và Búa.Lại gợi cảm ... xúc, sao lại thông cống?
Cái búa này hình dạng ra sao? Và cái gì hóc nó?Một câu hỏi Hóc và Búa.
Chú Mỹ ơi!Dí cái gì vào cái gì và tòi ra cái gì? Toàn dùng từ gợi cảm ... xúc. Tôi có code (cũng đít sần) nhưng không dí cũng không tòi
Nhớ xoá trắng bên dưới dữ liệu cột BPHP:Sub CountColor() Dim Dict, SampleRng As Range, DataRng As Range Dim LastRw As Long, TotalColor As Long, RArr(), Tmp As Long With Sheet1 LastRw = .Cells(1000, 2).End(xlUp).Row Set SampleRng = .Range("H5:J8") Set DataRng = .Range("C5:E" & LastRw) Set Dict = CreateObject("Scripting.Dictionary") For i = 1 To SampleRng.Rows.Count TotalColor = SampleRng.Cells(i, 1).Interior.Color + _ SampleRng.Cells(i, 2).Interior.Color + _ SampleRng.Cells(i, 3).Interior.Color Dict.Add TotalColor, i Next ReDim RArr(1 To Dict.Count, 1 To 1) For i = 1 To DataRng.Rows.Count TotalColor = DataRng.Cells(i, 1).Interior.Color + _ DataRng.Cells(i, 2).Interior.Color + _ DataRng.Cells(i, 3).Interior.Color Tmp = Dict.Item(TotalColor) RArr(Tmp, 1) = RArr(Tmp, 1) + 1 Next .Range("K5").Resize(Dict.Count, 1) = RArr End With End Sub
Tập đọc code cho quen đi chứ. Các câu lệnh tương tự sẽ có ý nghĩa tương tựChú Mỹ ơi!
Em chào các thầy và các anh chị ạ!
Sub CountColor chú và các thầy commet giống bài như trong ảnh giúp cháu(em) với ạ!
Này thì chỉ:Nhân đây nhờ chứ và các thầy chỉ cho cháu(em) bài tập như sau: