Nhà em thấy bài này cũng hay, nên cố gắng làm vừa học vừa giúp bạn. Các thày và các bạn xem và cho ý kiến giúp đỡ .
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False
If Intersect(Target, [G17]) Is Nothing Then Exit Sub
Me.UsedRange.Resize(, 10).Offset(19).Clear
Sheet1.[B6:K14].AdvancedFilter 2, [G16:G17], [B20]
With Range("L21:L30")
.Formula = "=IF(AND(RC[-8]>=R17C4,RC[-7]<=R17C5),RC[-9],"""")"
.Value = .Value
End With
With Rows("21:40").Select
Selection.EntireRow.Hidden = False
End With
With Range("L21:L40").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Hidden = True
End With
Range("G17").Select
Application.ScreenUpdating = True
End Sub[/GPECODE]
hình như bạn hơi lạm dụng từ khóa
With
'
.
.
end with
ALL của bạn không có kết quả nha!
nếu chỉ muốn lọc thôi thế thì sử dụng advencefilter được rồi :
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False
If Not Intersect(Target, [e17:G17]) Is Nothing Then
Sheet1.[c20:K30].Clear
If Sheet1.[e17] = "" Or Sheet1.[f17] = "" Then
Sheet1.[c6:K14].AdvancedFilter 2, [m16:m17], [c20:K20]
Else
Sheet1.[c6:K14].AdvancedFilter 2, [k16:m17], [c20:K20]
End If
End If
Application.ScreenUpdating = True
End Sub
[/GPECODE]