Như các bạn đã biết, trong Microsoft Excel đã có sẵn công cụ Filter nhanh theo cột.
Tuy nhiên, nếu kết giữa công cụ VBA và Filter thì công việc tìm kiếm trên Excel sẽ dễ dàng và nhanh hơn rất nhiều đó. Để hiểu rõ hơn về cách này, mời các bạn xem Video dưới đây.
- File mẫu: goo.gl/NFpP2K
- Lưu ý: Lưu file ở định dạng Excel Macro-Enabled Workbook để không bị mất VBA.
- Code VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target.Row = 3 Then 'ô B3
ActiveSheet.Range("$A$4:$D$66").AutoFilter Field:=2, Criteria1:="=*" & Range("B3:B3").Value & "*", _
Operator:=xlFilterValues
'Field tinh tu 1--> n: Field = Target.Column
'ActiveSheet.Range("$A$3:$E$66") vùng giá tri can tim kiem
'Range("B3:B3").Value: gia tri cua ô B3
ElseIf Target.Column = 3 And Target.Row = 3 Then 'ô C3
ActiveSheet.Range("$A$4:$D$66").AutoFilter Field:=3, Criteria1:="=*" & Range("C3:C3").Value & "*", _
Operator:=xlFilterValues
ElseIf Target.Column = 4 And Target.Row = 3 Then 'ô D3
ActiveSheet.Range("$A$4:$D$66").AutoFilter Field:=4, Criteria1:="=*" & Range("D3:D3").Value & "*", _
Operator:=xlFilterValues
End If
End Sub
Code language: VB.NET (vbnet)
Hy vọng với bài chia sẻ này sẽ giúp các bạn Officer nhiều trong việc quản lý và truy xuất dữ liệu bằng Excel.
Chúc các bạn một ngày vui vẻ!