Có chắc là muốn filter hết tất cả các màu không? Kể cả màu đen?Bây giở em muốn Filter by font color tất cả các màu 1 lần thì có cách nào không?
Em trình bày chưa rỏ ràngCó chắc là muốn filter hết tất cả các màu không? Kể cả màu đen?
Nghĩa là không filter gì hết?
Option Explicit
Sub FilterColor()
Dim lr&, c&, cell As Range, ary()
lr = Cells(Rows.Count, "B").End(xlUp).Row
For Each cell In Range("B5:B" & lr)
If cell.Font.Color > 0 Then
c = c + 1
If c = 1 Then
ReDim ary(1 To 1)
Else
ReDim Preserve ary(1 To UBound(ary) + 1)
End If
ary(UBound(ary)) = CStr(cell.Offset(, -1).Value)
End If
Next
ActiveSheet.Range("A4:B" & lr).AutoFilter Field:=1, Criteria1:=ary, Operator:=xlFilterValues
End Sub
Dạ em cảm ơn anh nhiềuOK, thử code này nhé
Mã:Option Explicit Sub FilterColor() Dim lr&, c&, cell As Range, ary() lr = Cells(Rows.Count, "B").End(xlUp).Row For Each cell In Range("B5:B" & lr) If cell.Font.Color > 0 Then c = c + 1 If c = 1 Then ReDim ary(1 To 1) Else ReDim Preserve ary(1 To UBound(ary) + 1) End If ary(UBound(ary)) = CStr(cell.Offset(, -1).Value) End If Next ActiveSheet.Range("A4:B" & lr).AutoFilter Field:=1, Criteria1:=ary, Operator:=xlFilterValues End Sub
Em không biết code anh viết dựa vào cột STTCode tại #4: Căn cứ màu chữ cột B để lọc cột A (theo STT)
Bây giờ qua file mới thì cột STT vẫn còn mà không có số TT, làm sao code hoạt động được.
File này có phải là file sát với thực tế chưa? Cột STT thực tế nó là cái gì?
Bạn cho file sát với thực tế nhé.
Nếu thực tế cột này trống thì phải dùng cách khác: hide dòng, chứ không Filter.
Option Explicit
Sub FilterColor()
Dim lr&, cell As Range, u As Range
lr = Cells(Rows.Count, "B").End(xlUp).Row
Range("B5:B" & lr).EntireRow.Hidden = True
For Each cell In Range("B5:B" & lr)
If cell.Font.Color > 0 Then
If u Is Nothing Then
Set u = cell
Else
Set u = Union(u, cell)
End If
End If
Next
u.EntireRow.Hidden = False
End Sub