Dãy núi được đặt tên theo được tạo ra bằng cách sử dụng các chức năng chỉ mục như hình dưới đâyCông thức được đặt tên theo phạm viPRD = Master! $A$ 2: INDEX(Master!$A:$A,COUNTA(Master!$A:$A))rgn = chủ! $B$ 2: INDEX(Master!$B:$B,COUNTA(Master!$B:$B))Kh = Master! $C$ 2: INDEX(Master!$C:$C,COUNTA(Master!$C:$C))agnt = chủ! $D$ 2: INDEX(Master!$D:$D,COUNTA(Master!$D:$D))Bây giờ chúng ta cần phải thiết lập bảng mà chúng ta cần dữ liệu lọc sẽ được hiển thị. Đề mục được đặt trong tế bào B5 B8 và thả (sử dụng xác nhận dữ liệu — danh) tính năng đã được đặt trong tế bào C5 C8. Bây giờ chúng ta cần phải tạo hoặc tiêu chuẩn các lĩnh vực trong bảng RawData, đây là một yêu cầu và không thể là bất cứ nơi nào khác. Khi bạn sử dụng hộp thoại nâng cao lọc và cố gắng đặt đầu ra vào một bảng 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 vào bảng hoạt động". Chúng tôi sẽ vượt qua giới hạn này bằng cách sử dụng VBA và nói cho Excel nơi để đặt các dữ liệu lọc. Tôi đã sử dụng các tế bào M1 để P1 để xác định các tiêu đề và các tế bào M2 để P2 để có được các tùy chọn thực tế từ các tấm lọc""Công thức tế bàoM2 = bộ lọc! C5N2 = bộ lọc! C6O2 = bộ lọc! C7P2 = bộ lọc! C8Các vĩ mô để chạy bộ lọc nâng cao và trích xuất dữ liệuPhụ FilterData()Sheets("Filter"). ChọnRange("B10"). ChọnPhạm vi (lựa chọn, Selection.End(xlToRight)). ChọnPhạm vi (lựa chọn, Selection.End(xlDown)). ChọnSelection.ClearSheets("RawData"). Range("Table1[#all]"). Hành động AdvancedFilter: = xlFilterCopy, CriteriaRange: = _Sheets("RawData"). Range("M1:P2"), CopyToRange:=Sheets("Filter"). Range("B10"), độc đáo: = TrueColumns.AutoFitRange("B10"). ChọnCuối tiểuLần đầu tiên chúng tôi đảm bảo dữ liệu lọc hiện tại (trong bất kỳ) được xóa ra trước khi chúng tôi chạy mã một lần nữa và sau đó chúng tôi nhận được 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ế bộ lọc dữ liệu của chúng tôi ở đây.Sheets("RawData"). Range("Table1[#all]"). AdvancedFilterHành động: = xlFilterCopy,CriteriaRange:=Sheets("RawData"). Range("M1:P2"),CopyToRange:=Sheets("Filter"). Range("B10"),Độc đáo: = TrueChúng tôi chuyển đổi dữ liệu thô của chúng tôi vào một bảng excel (cấu trúc tài liệu tham khảo có cấu trúc tham chiếu), bằng cách thực hiện điều 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 đến, các "Table1 [#All]" sẽ chăm sóc đó cho chúng tôi.Chúng tôi cũng cần phải chỉ ra rằng dữ liệu của chúng tôi là trong một bảng và chúng tôi đang cố gắng để chạy bộ lọc nâng cao trên phạm vi 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 tôi xác định các hành động mà chúng ta cần đó là bản sao 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ính nó.Sau đó chúng tôi đã xác định phạm vi tiêu chuẩn (mà cần phải trên bảng cùng một dữ liệu ở đâu).Và cuối cùng chúng tôi đã xác định nơi đầu ra đã được gửi đến bằng cách sử dụng: "CopyToRange:=Sheets("Filter"). Range("B10″)"Chúng tôi cũng đã thực hiện chắc chắn rằng hồ sơ chỉ duy nhất được trả về cho chúng tôi bằng cách độc đáo: = True.
đang được dịch, vui lòng đợi..
