Viết sub lọc dữ liệu theo dữ liệu chọn trước (1 người xem)

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

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

Anmi

Thành viên mới
Tham gia
12/10/16
Bài viết
7
Được thích
0
Em có một bảng gồm 2 cột ngày và mục. Mỗi ngày có thể làm nhiều hạng mục, có thể chỉ một hạng mục. Giờ em cần tìm ngược lại ví dụ hạng mục A thì thực hiện trong những ngày nào. Hạng mục em cần tìm sẽ đánh trong ô tô màu vàng trên cùng. Em có dùng Filter của bảng đánh A trong mục Search thì làm được, nhưng mất khá nhiều thao tác. Nhờ các bác chỉ dùm em xem có viết được sub nào chỉ cần chạy là đọc được dữ liệu trong ô màu vàng và lọc bảng giống như đánh A trong mục Search của bảng không?
 

File đính kèm

Em có một bảng gồm 2 cột ngày và mục. Mỗi ngày có thể làm nhiều hạng mục, có thể chỉ một hạng mục. Giờ em cần tìm ngược lại ví dụ hạng mục A thì thực hiện trong những ngày nào. Hạng mục em cần tìm sẽ đánh trong ô tô màu vàng trên cùng. Em có dùng Filter của bảng đánh A trong mục Search thì làm được, nhưng mất khá nhiều thao tác. Nhờ các bác chỉ dùm em xem có viết được sub nào chỉ cần chạy là đọc được dữ liệu trong ô màu vàng và lọc bảng giống như đánh A trong mục Search của bảng không?
Dùng thử code này xem sao?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
    Sheet1.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:="*" & Target.Value & "*", Operator:=xlFilterValues
End If
End Sub
 
Upvote 0
Dùng thử code này xem sao?
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
    Sheet1.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:="*" & Target.Value & "*", Operator:=xlFilterValues
End If
End Sub

Em có dựa theo gợi ý của bác viêt một chương trình như bên dưới với ActiveCell là ô tô màu vàng cần lọc. Chương trình anh viết em không hiểu hết, copy thử toàn bộ thấy báo lỗi nhưng em không biết sửa.
Mã:
Sub Search()
    Dim Code As String
    Code = ActiveCell.Value
    Debug.Print Code
    ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=2, Criteria1:= _
        "*" & Code & "*", Operator:=xlFilterValues
End Sub
Nhưng có thể dữ liệu thực tế của em phức tạp hơn ví dụ đơn giản trước đây nên khi chạy nó chỉ chọn được những dòng có giá trị của ô tô màu vàng. Những dòng chỉ có một mình giá trị ô tô màu vàng lại không lọc được. Nhờ bác xem dùm em xem chương trình của em có lỗi gì không?
Cảm ơn các bác nhiều!
 

File đính kèm

Upvote 0
Nhưng có thể dữ liệu thực tế của em phức tạp hơn ví dụ đơn giản trước đây nên khi chạy nó chỉ chọn được những dòng có giá trị của ô tô màu vàng. Những dòng chỉ có một mình giá trị ô tô màu vàng lại không lọc được. Nhờ bác xem dùm em xem chương trình của em có lỗi gì không?
Dữ liệu trong cột B của bạn không đồng nhất, lúc Number, lúc Text lộn xộn.
Chuyển tất cả sang kiểu Text như trong file, nhập điều kiện lọc vào ô B1.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom