Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để tự động áp dụng lại bộ lọc tự động khi dữ liệu thay đổi trong Excel?

Trong Excel, khi bạn áp dụng Lọc chức năng lọc dữ liệu, kết quả lọc sẽ không được thay đổi tự động với các thay đổi dữ liệu trong dữ liệu đã lọc của bạn. Ví dụ: khi tôi lọc tất cả các Táo khỏi dữ liệu, bây giờ, tôi thay đổi một trong các dữ liệu đã lọc thành BBBBBB, nhưng kết quả sẽ không bị thay đổi cũng như ảnh chụp màn hình sau. Bài viết này, tôi sẽ nói về cách áp dụng lại tính năng tự động lọc tự động khi dữ liệu thay đổi trong Excel.

doc auot refresh bộ lọc 1

Tự động áp dụng lại bộ lọc tự động khi dữ liệu thay đổi với mã VBA


mũi tên màu xanh bong bóng bên phải Tự động áp dụng lại bộ lọc tự động khi dữ liệu thay đổi với mã VBA

Thông thường, bạn có thể làm mới dữ liệu bộ lọc bằng cách nhấp vào tính năng Áp dụng lại theo cách thủ công, nhưng ở đây, tôi sẽ giới thiệu một mã VBA để bạn làm mới dữ liệu bộ lọc tự động khi dữ liệu thay đổi, vui lòng làm như sau:

1. Chuyển đến trang tính mà bạn muốn tự động làm mới bộ lọc khi dữ liệu thay đổi.

2. Nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán mã sau vào cửa sổ Mô-đun trống, xem ảnh chụp màn hình:

Mã VBA: Tự động áp dụng lại bộ lọc khi dữ liệu thay đổi:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

doc auot refresh bộ lọc 2

Chú thích: Trong đoạn mã trên, Bảng 3 là tên của trang tính có bộ lọc tự động mà bạn sử dụng, vui lòng thay đổi nó theo nhu cầu của bạn.

3. Và sau đó lưu và đóng cửa sổ mã này, bây giờ, khi bạn thay đổi dữ liệu đã lọc, Lọc chức năng sẽ được tự động làm mới ngay lập tức, xem ảnh chụp màn hình:

doc auot refresh bộ lọc 3


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (36)
Xếp hạng 5 trong 5 · xếp hạng 1
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, làm thế nào tôi có thể sử dụng tất cả những thứ này trong google Finance? Tks
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đẹp .. thực sự tôi cần nó
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi muốn một thay đổi trên một trang tính khiến nhiều trang tính khác tự động lọc, làm cách nào để thay đổi mã này? Ví dụ: SheetA bị thay đổi, khiến Sheet1, Sheet2 và Sheet3 áp dụng bộ lọc tự động của nó. Thanks!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang làm điều này cho mặt trước trong trang tính nếu ô được đặt thành = sheet1! E6. Nó sẽ không áp dụng bộ lọc khi nó thay đổi. Nếu tôi thay đổi số ở tờ sau, nó sẽ điều chỉnh phía trước nhưng không lọc. Nếu điều chỉnh công thức để lọc tiêu chí nó sẽ áp dụng lại. Tôi có thể làm gì?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Sử dụng này
Private Sub Work_Change (ByVal Target As Range)
Activesheet.AutoFilter.ApplyFilter
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi không thể làm cho điều này làm việc cho tôi chút nào. Tôi đang cố gắng lấy từ một trang tính tổng thể và nó chỉ lấy các công việc áp dụng cho một số người quản lý dự án nhất định trên mỗi tab có tên của họ. Tôi cũng muốn nó tự động làm mới khi tôi thực hiện thay đổi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
lệnh này tất cả giả mạo không làm gì cả. hoàn toàn thử nhưng không sử dụng.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hoạt động tuyệt vời và giúp tôi tiết kiệm rất nhiều thời gian và không phải lo lắng về .. Mẹo thực sự tuyệt vời .. Rất cảm ơn sự giúp đỡ của bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Giải pháp này hoạt động hoàn hảo. Cảm ơn vì đã viết nó lên! Nếu ai đó đang gặp khó khăn, có một số điều cần xem xét.

Đầu tiên, sự kiện Worksheet_Change được gọi trên cơ sở từng trang tính. Điều này có nghĩa là nếu bạn có nhiều trang tính có bộ lọc bạn cần cập nhật, bạn sẽ cần phản hồi tất cả các sự kiện đó. Một chương trình con Worksheet_Change cho mỗi trang tính, không phải một chương trình con cho toàn bộ sổ làm việc (một ngoại lệ - xem ghi chú bên dưới).

Thứ hai, và tiếp theo phần đầu tiên, mã phải được đặt trong mô-đun mã cụ thể cho trang tính cần theo dõi. Nó dễ dàng (vô tình) chuyển đổi các mô-đun mã khi bạn vào trình soạn thảo VB, vì vậy bạn phải cẩn thận để đặt nó cụ thể vào trang tính mà bạn muốn theo dõi các thay đổi dữ liệu.

Thứ ba, điều này chưa được xác nhận, nhưng có thể là một điểm sai sót. Ví dụ sử dụng tên trang tính là "Sheet1", "Sheet2", v.v. Nếu bạn đã đổi tên trang tính, bạn có thể cần cập nhật mã. Lưu ý trong ví dụ, Sheet7 đã được đặt tên là "dfdf". Nếu bạn muốn cập nhật bộ lọc ở đó, bạn cần sử dụng;
Trang tính ("dfdf"). AutoFilter.ApplyFilter
không phải;
Trang tính ("Sheet7"). AutoFilter.ApplyFilter

Có thể tốt nếu cập nhật bài viết bao gồm một ví dụ với một trang tính đã được đổi tên.


Cuối cùng, nếu bạn muốn theo dõi các thay đổi dữ liệu trên một trang tính, nhưng cập nhật bộ lọc trên nhiều trang tính, thì bạn chỉ cần một chương trình con, được đặt trong mô-đun mã của trang tính mà bạn đang theo dõi. Mã sẽ trông giống như thế này;

# (mã phải được đặt trong trang tính để được theo dõi thay đổi dữ liệu)
Private Sub Worksheet_Change (ByVal Target As Range)
Trang tính ("Sheet1"). AutoFilter.ApplyFilter
Trang tính ("Sheet2"). AutoFilter.ApplyFilter
Trang tính ("Sheet3"). AutoFilter.ApplyFilter
Trang tính ("Sheet4"). AutoFilter.ApplyFilter
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Mike,
Cảm ơn cho lời giải thích chi tiết của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Lời giải thích tuyệt vời, cảm ơn bạn.

Nhưng làm cách nào để kích hoạt Sheets ("Sheet3"). AutoFilter.ApplyFilter khi một trang tính mới được tạo?
Vì tôi không thể viết mã bạn đã đề cập trên một trang tính chưa tồn tại
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tuyệt vời cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
hoạt động như một nhà vô địch, và rất đơn giản. Cảm ơn rât nhiều!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này có vẻ tuyệt vời. Bạn có thể cho tôi biết làm thế nào để làm tương tự cho Sắp xếp, thay vì Bộ lọc, xin vui lòng?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Chris,
Có thể, bài viết sau đây có thể giải quyết vấn đề của bạn, hãy xem:

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

Hãy thử nó!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, điều đó hoạt động tốt, tuy nhiên chỉ khi thay đổi thủ công dữ liệu trong bảng.

Tôi có một bảng được lọc kiểu 'top ten / leader board' được điền từ mục nhập dữ liệu trên một trang tính riêng biệt (thực tế dữ liệu đi qua 3 trang tính trước khi chuyển đến bảng). Khi dữ liệu được thay đổi trong trang tính nhập dữ liệu, bảng thống kê số liệu cập nhật, tuy nhiên, bộ lọc không tự động làm mới.
Bất kỳ ý tưởng về cách làm điều đó?
Nhiều nghĩa vụ.
Alex
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có cô ấy cùng một vấn đề. Ai đó có thể giúp chúng tôi không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi gặp vấn đề tương tự. Tôi đang cố gắng lọc tự động trang tính 2 có chứa dữ liệu đến từ trang tính 1. Nó chỉ hoạt động nếu tôi thay đổi dữ liệu trên trang tính 2, không phải trên trang tính 1.
Bất kỳ suy nghĩ về lý do tại sao điều này không hoạt động và làm thế nào để khắc phục nó?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, điều này có vẻ hoạt động tốt nhưng tôi đang gặp sự cố khi có nhiều bộ lọc trên cùng một trang tính (tab). Tôi đã chuyển đổi phạm vi ô thành bảng để cho phép các bộ lọc riêng biệt và nhiều bộ lọc trong cùng một trang tính. Ví dụ này chỉ xuất hiện để cập nhật một trong các bảng / bộ lọc. Bất kỳ đề xuất nào về cách cập nhật TẤT CẢ các bảng / bộ lọc trong một trang tính?

Rất cám ơn,

Tom
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Tom,
Mã trong bài viết này hoạt động tốt cho nhiều bảng trong một trang tính, bạn chỉ cần nhấn Enter sau khi thay đổi dữ liệu thay vì nhấp vào ô khác.
Hãy thử nó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Terima Kasih

sangat membantu
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này không hoạt động với bộ lọc dựa trên lựa chọn danh sách https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tuyệt vời và đơn giản để làm. Cám ơn rất nhiều!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Mã này hoạt động tốt, cảm ơn rất nhiều.

Tuy nhiên, tôi gặp một vấn đề nhỏ với nó - nếu tôi thay đổi giá trị trong bất kỳ ô nào không phải là một phần của bảng, tôi sẽ gặp lỗi Runtime nói:

"Lỗi thời gian chạy '91':

Biến đối tượng hoặc Với biến khối không được thiết lập "


Tôi có tùy chọn Gỡ lỗi hoặc Kết thúc, tùy chọn Tiếp tục chuyển sang màu xám. Tôi có thể nhấp vào "Kết thúc" và mã vẫn hoạt động, tuy nhiên rất khó chịu khi phải xử lý cửa sổ bật lên này sau mỗi lần thay đổi.

Bất kỳ ai có kinh nghiệm tương tự hoặc một đề xuất về cách sắp xếp điều này?

Cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, David,
Để giải quyết vấn đề của bạn, bạn có thể áp dụng mã sau:

Private Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Trang tính ("Sheet3"). AutoFilter.ApplyFilter
End Sub

Hãy thử nó, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang,


Tôi đã thực hiện giải pháp của bạn và nó thực sự đã được sửa.

Cảm ơn rất nhiều!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đã gặp vấn đề tương tự, đã dán mã mới và thay đổi tên của trang tính nhưng không có gì xảy ra, bộ lọc không cập nhật
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
vấn đề tương tự ở đây, bất kỳ giải pháp cập nhật?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không thể làm cho điều này hoạt động trên office 365
bất kỳ đề xuất
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, cảm ơn rất nhiều vì sự giúp đỡ. Có điều gì đó không phù hợp với tôi. Đây là câu chuyện.

Sheet1 có dữ liệu biến. Sheet3 có dữ liệu tĩnh và bộ lọc. Tiêu chí lọc trên "Sheet3" đến từ Sheet1. Sheet1 có dữ liệu đến từ các kết quả được lọc trên Sheet3.

Sheet3 có mã:

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
Range ("A1: U14"). AdvancedFilter Action: = xlFilterCopy, CriteriaRange: = Range ("A22: U23"), CopyToRange: = Range ("A25: U26"), Unique: = False
End Sub

Nó hoạt động tuyệt vời nếu tôi làm bất cứ điều gì trên Sheet3. Không vấn đề gì. Cảm ơn bạn!

Lúc đầu, tôi có mã trên Sheet1:

Private Sub Worksheet_Change (ByVal Target As Range)
Trang tính ("Sheet3"). AutoFilter.ApplyFilter
End Sub

Dẫn đến lỗi "Runtime error 91, Object Variable or With Block not Set".

Tôi đã thay đổi mã dựa trên nhận xét thành:

Private Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Trang tính ("Sheet3"). AutoFilter.ApplyFilter
End Sub

Bây giờ tôi không gặp lỗi, nhưng dữ liệu trên Sheet3 và do đó Sheet1 không thay đổi. Nói cách khác, sự kiện áp dụng bộ lọc cho Sheet3 không xảy ra khi tôi thực hiện thay đổi trên Sheet1. Không quan trọng nếu tôi đánh hoặc bấm vào một ô khác sau khi thay đổi ô tiêu chí bộ lọc Sheet3 được đặt trên Sheet1.

Ngoài ra, tôi hy vọng rằng nếu tôi muốn có nhiều ô trên Trang tính1 gây ra các bộ lọc trên Trang tính 4 và 5 ngoài Trang tính 3, tôi sẽ cần mã trên Trang tính 1 để đọc:

Private Sub Worksheet_Change (ByVal Target As Range)
On Error Resume Next
Trang tính ("Sheet3"). AutoFilter.ApplyFilter
Trang tính ("Sheet4"). AutoFilter.ApplyFilter
Trang tính ("Sheet5"). AutoFilter.ApplyFilter
End Sub

Cảm ơn một lần nữa!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Đây là một đoạn mã tuyệt vời, cảm ơn bạn. Vấn đề duy nhất tôi đang gặp phải là tôi đang sử dụng trình đơn thả xuống trên một trang biểu đồ riêng biệt. Nếu tôi thay đổi thủ công giá trị trong ô được liên kết với trình đơn thả xuống, nó sẽ hoạt động. Nhưng khi tôi cố gắng chỉ sử dụng trình đơn thả xuống, nó sẽ không cập nhật. Có suy nghĩ gì không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi thực sự có dữ liệu từ một tệp Excel khác đã được nhập vào một Excelsheet với tên "Cơ sở dữ liệu". Sau đó, tôi nhập dữ liệu này trong cùng một tệp Excel nhưng trong một ExcelSheet khác "Tổng quan". Tôi muốn khi dữ liệu thay đổi trong nguồn tổ chức, bộ lọc sẽ áp dụng trong trang tính "Tổng quan". Cảm ơn bạn về phía trước cho một người có thể giúp tôi :). PS không thể sử dụng VBA trong excelsheet đầu tiên
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL