Những dãy tên được tạo ra bằng cách sử dụng hàm INDEX như hình dưới đây Name Range Formula PRD = Master $ A $ 2: INDEX (Master $ A:! $ A, COUNTA (Master $ A: $ A))! RGN = Master $ B $ 2: INDEX (! Thầy $ B: $ B, COUNTA (Master $ B: $ B)) cust = Master $ C $ 2:! INDEX (Master $ C: $ C, COUNTA (Master $ C: $ C ))! agnt = Master $ D $ 2: INDEX (Master $ D: $ D, COUNTA (Master $ D: $ D)) Bây giờ chúng ta cần phải thiết lập các sheet, mà chúng ta cần các dữ liệu đã lọc sẽ được hiển thị. Tiêu đề được đưa vào tế bào B5 đến B8 và thả xuống (bằng cách sử dụng Data Validation-List) tính năng được đưa vào tế bào C5 đến C8. Bây giờ chúng ta cần phải tạo ra hoặc tiêu chí lĩnh vực trong bảng RawData, đây là một yêu cầu và không thể là bất kỳ nơi nào khác. Khi bạn sử dụng hộp thoại Advanced Filter và cố gắng đặt các đầu ra vào một tờ giấy khác Excel sẽ hiển thị một thông báo nói rằng "Bạn chỉ có thể sao chép dữ liệu cho các Sheet Active". Chúng tôi sẽ khắc phục giới hạn này bằng cách sử dụng VBA và nói với Excel nơi để đặt các dữ liệu đã lọc. Tôi đã sử dụng các tế bào M1 đến P1 để xác định các tiêu đề và các tế bào M2 đến P2 để có được sự lựa chọn thực tế từ "Filter Sheet" Cells Formula M2 = Lọc! C5 N2 = Lọc C6! O2 C7 = Lọc! P2 = Lọc C8! Macro để chạy lọc dữ liệu và chiết xuất tiên tiến Sub FilterData () Sheets ("Filter"). Select Range ("B10"). Select Range (Selection, Selection.End (xlToRight)). Select Range (Selection, Hành động: = xlFilterCopy, CriteriaRange: = _ Sheets ("RawData") Range ("M1: P2")., CopyToRange:. = Sheets ("Filter") Range ("B10"), Unique: = True Columns.AutoFit Phạm vi ("B10"). Select End Sub Trước tiên chúng tôi đảm bảo các dữ liệu đã lọc hiện tại (trong bất kỳ) là xóa ra trước khi chúng tôi chạy lại mã và sau đó chúng ta có được những dữ liệu đã lọc mới từ tế bào B10 trở đi. Bây giờ chúng ta hãy hiểu mã thực tế mà các bộ lọc dữ liệu của chúng tôi chuyển đổi dữ liệu liệu của chúng tôi vào một bảng excel (Tham khảo cấu trúc cấu trúc tham khảo), bằng cách làm này, chúng ta không còn cần phải biết làm thế nào nhiều hàng dữ liệu của chúng tôi thực sự đi xuống, các "Table1 [#All]" chăm sóc đó cho chúng tôi. Chúng tôi cũng cần phải xác định rằng dữ liệu của chúng tôi là trong một tờ giấy khác và chúng tôi đang cố gắng chạy Advanced Filter có khoảng từ dữ liệu, điều này được thực hiện bằng cách sử dụng dòng đầu tiên "Sheets (" RawData "). Range (" Table1 [#All] "). AdvancedFilter ". Tiếp theo chúng ta xác định các hành động mà chúng ta cần đó là sao chép trong trường hợp của chúng tôi, các tùy chọn khác là" xlFilterInPlace "mà sẽ lọc ngay trên dữ liệu của chúng tôi riêng của mình. Sau đó, chúng tôi đã xác định các Range (mà cần phải được trên các tờ cùng một tiêu chí . nơi mà dữ liệu) Và cuối cùng chúng tôi đã xác định nơi sản lượng phải được gửi đến bằng cách sử dụng: "). Range (": "CopyToRange = Sheets (" Filter B10 ")" Chúng tôi cũng đã thực hiện chắc chắn rằng chỉ có hồ sơ duy nhất là trả lại cho chúng tôi bằng cách chuyển Unique: = True.
đang được dịch, vui lòng đợi..
