Hỏi cách tạo nút lệnh thực hiên lọc dữ liệu? (1 người xem)

  • Thread starter Thread starter atf43v
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

atf43v

Thành viên mới
Tham gia
17/3/10
Bài viết
5
Được thích
1
Mình đang cần tạo một Command Button để thực hiện một lệnh lọc dữ liệu (lệnh này mình cũng cop nhặt trên diễn đàn và chỉnh sửa) Bởi mình cũng chẳng biết gì về VBA luôn **~**.
Dưới đây là phần lệnh mình muốn thực hiện cho Command button:

Private Sub CommandButton1_Click()

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$4" Then
With Target.Parent
Sheets("2012").[A7:Y10000].AdvancedFilter 1, .[B3:B4], .[A7:Y7]
End With
End If
If Target.Address = "$D$4" Then
With Target.Parent
Sheets("2012").[A7:Y10000].AdvancedFilter 1, .[D3:D4], .[A7:Y7]
End With
End If
If Target.Address = "$F$4" Then
With Target.Parent
Sheets("2012").[A7:Y10000].AdvancedFilter 1, .[F3:F4], .[A7:Y7]
End With
End If
End Sub

Mong các bạn tìm giải pháp giúp!
 
Sau một thời gia post bài lên diễn đàn hỏi giải pháp, nhưng ko thấy ai trả lời. Mình đã google tìm cách làm và đã giải quyết được vấn đề. Nhân đây post bài chia sẻ với mọi người để tham khảo trong trường hợp cần thiết.
1. Sau khi tìm hiểu mới thấy việc thực hiện một loại các lệnh Advanced filter như trên là tường đối bất tiện (thậm chí còn đá nhau) khi ta muốn chọn nhiều giá trị tham chiếu để lọc cùng lúc.
2. KHông thể kết hợp một loại lệnh lọc Advanced filter như trên trong một Command button.
3. Giải pháp:
a) Nếu muốn tạo nút Command button thực hiện lênh Advanced filter ngay tại vùng dữ liệu thì cấu trúc lệnh như sau:
Private Sub CommandButton1_Click()
Range("Datalist").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Criteria"), Unique:=False
End Sub
b) Nếu muốn tạo nút Command button thực hiện lênh Advanced filter để copy giá trị lọc ra một vùng khác thì cấu trúc lệnh như sau:
Private Sub CommandButton1_Click()
Range("DataList").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("Criteria"), CopyToRange:=Range("Destination"), Unique:=False
End Sub
Trong đó:
- Datalist là vùng bạn muốn lọc dữ liệu
- Criteria: là vùng giá trị tham chiếu để lọc dữ liệu
- Destination (cho ý b): là nới bạn muốn copy dữ liệu đến sau khi thực hiện lệnh lọc
Lưu ý: Unique có thế = false hoặc true (mình cũng ko hiểu ý nghĩa của nó lắm-Amateur mà, he2), ở đây mình chọn false
Do là Newbie về VBA nên cách diễn đạt có thể sẽ gây khó hiểu. Mong các bạn góp ý!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom