Microsoft Excel cung cấp nhiều cách để xóa Bộ lọc tự động từ trang tính hoặc Bảng Excel. Trong bài viết này, bạn sẽ tìm hiểu 7 các phương pháp để xóa Bộ lọc tự động nếu nó tồn tại trong Excel bằng tập lệnh VBA.
Bạn có thể tải xuống tệp Excel từ liên kết sau và thực hành cùng với nó.
7 Ví dụ về việc sử dụng VBA để loại bỏ bộ lọc tự động nếu nó tồn tại trong Excel
1. Loại bỏ AutoFilter khỏi Active Worksheet Nếu nó tồn tại
Ảnh chụp màn hình sau đây hiển thị Bộ lọc tự động trong trang tính đang hoạt động. Chúng tôi sẽ xóa Tự động lọc này sử dụng VBA mã.
Nếu bạn muốn xóa Bộ lọc tự động từ trang tính đang hoạt động sau đó làm theo các bước bên dưới:
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Public Sub RemoveAFActiveWorksheet()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Tại đây, tôi đã tạo một Thủ tục phụ Public Sub RemoveAFActiveWorksheet
- Tiếp theo, tôi đã sử dụng Câu lệnh IF để kiểm tra xem có tồn tại bất kỳ Bộ lọc tự động nào nếu tồn tại nó sẽ xóa AutoFilter khi tôi đặt AutoFilterMode thành Sai .
❺ Quay lại trang tính đang hoạt động và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAFActiveWorksheet và nhấn nút Chạy nút.
Bây giờ bạn sẽ thấy Bộ lọc tự động đã bị loại bỏ và tất cả dữ liệu đều hiển thị ngay bây giờ.
Đọc thêm: Excel VBA để kiểm tra xem Tự động lọc có được bật hay không (4 cách dễ dàng)
2. Sử dụng VBA để xóa AutoFilter khỏi tất cả các trang tính
Nhìn vào hình ảnh sau đây. Bạn có thể thấy Bộ lọc tự động được áp dụng trên cả hai trang tính. Bây giờ chúng ta sẽ viết VBA mã để xóa Bộ lọc tự động từ tất cả các trang tính trong sổ làm việc .
Để xóa Bộ lọc Tự động khỏi tất cả các trang tính trong sổ làm việc làm theo các bước bên dưới:
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Public Sub DeleteAFfromallWorksheets()
Dim xWs1 As Worksheet
For Each xWs1 In ActiveWorkbook.Worksheets
If xWs1.AutoFilterMode = True Then
xWs1.AutoFilterMode = False
End If
Next xWs1
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Ở đây, tôi đã sử dụng Vòng lặp for để tìm kiếm cho Tự động lọc trong mỗi trang tính.
- Tiếp theo, tôi đã sử dụng Câu lệnh IF để kiểm tra xem có tồn tại an Nếu tồn tại nó sẽ xóa AutoFilter khi tôi đặt ActiveSheet.AutoFilterMode thành Sai .
❺ Quay lại trang tính của bạn và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAfromallWorksheets và nhấn nút Chạy nút.
Bây giờ, bạn sẽ thấy tất cả các biểu tượng Tự động lọc đã bị xóa từ tất cả các trang tính trong sổ làm việc của bạn giống như hình dưới đây:
3. Xóa tự động lọc khỏi một cột của bảng
Trong hình bên dưới, bạn có thể thấy Bộ lọc tự động chỉ được áp dụng trong cột đầu tiên của cái bàn. Trong phương pháp này, chúng tôi sẽ viết mã để xóa Bộ lọc Tự động khỏi một cột duy nhất của một bảng trong Excel.
Để làm điều đó,
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Bây giờ Sao chép VBA sau mã.
Sub DeleteAFSingleColumnfromTable()
Dim xWs1 As Worksheet
Dim xTableName1 As String
Dim xLT1 As ListObject
xTableName1 = "TableA"
Set xWs1 = Sheets("MyTable1")
Set xLT1 = xWs1.ListObjects(xTableName1)
xLT1.Range.AutoFilter Field:=1
End Sub
❹ Sau đó, Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Đầu tiên, tôi đã khai báo 3 biến.
- Sau đó, tôi đã chèn tên bảng và Đặt tên trang tính .
- Sau đó, tôi đã sử dụng ListObjects thuộc tính hiển thị tất cả nội dung của bảng .
- Cuối cùng, tôi nhập một chỉ mục cột của bảng sử dụng Trường tự động lọc
❺ Quay lại trang tính của bạn và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAFSingleColumnfromTable và nhấn nút Chạy nút.
Sau đó, bạn sẽ thấy Bộ lọc tự động không còn tồn tại trong cột đầu tiên trong bảng của bạn.
4. Xóa tự động lọc khỏi nhiều cột của bảng
Hình ảnh sau đây cho thấy hai AutoFilter biểu tượng trong đầu tiên và thứ hai cột của một bảng. Bạn có thể làm theo phương pháp này để xóa Tự động lọc từ hai cột của bảng sử dụng VBA .
Bây giờ, hãy làm theo các bước bên dưới để xóa Tự động lọc nếu nó tồn tại từ nhiều cột trong Bảng Excel.
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Sub DeleteAFMultiColumnsfromTable()
Dim xWs1 As Worksheet
Dim xTableName1 As String
Dim xLT1 As ListObject
xTableName1 = "TableA"
Set xWs1 = Sheets("MyTable1")
Set xLT1 = xWs1.ListObjects(xTableName1)
xLT1.Range.AutoFilter Field:=1
xLT1.Range.AutoFilter Field:=2
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Đầu tiên, tôi đã khai báo 3 biến.
- Sau đó, tôi đã chèn tên bảng và Đặt tên trang tính .
- Sau đó, tôi đã sử dụng ListObjects thuộc tính hiển thị tất cả nội dung của bảng .
- Cuối cùng, tôi nhập hai chỉ mục cột của bảng sử dụng Trường tự động lọc
❺ Bây giờ, quay lại trang tính và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro DeleteAFMultiColumnsfromTable và nhấn nút Chạy nút.
Sau khi chạy mã, bạn sẽ thấy Bộ lọc tự động bị loại bỏ từ nhiều cột.
Đọc thêm: [Khắc phục]:Phương pháp tự động lọc của lớp phạm vi không thành công (5 giải pháp)
5. Xóa tự động lọc khỏi toàn bộ bảng bằng Excel VBA
Nếu bạn có Bộ lọc tự động đã áp dụng trong bảng của bạn giống như hình bên dưới và muốn xóa tất cả chúng, sau đó thực hiện theo phương pháp này.
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Sub RemoveAFfromEntireTable()
Dim xWs1 As Worksheet
Dim xTable1 As String
Dim xTable2 As ListObject
xTable1 = "TableB"
Set xWs1 = ActiveSheet
Set xTable2 = xWs1.ListObjects(xTable1)
xTable2.AutoFilter.ShowAllData
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Đầu tiên, tôi đã khai báo 3 biến.
- Sau đó, tôi đã chèn tên bảng tiếp theo Đặt tên trang tính dưới dạng ActiveSheet .
- Sau đó, tôi đã sử dụng ListObjects thuộc tính hiển thị tất cả nội dung của bảng và sử dụng Set để lưu trữ nó trong xTable2
- Cuối cùng, tôi đã sử dụng ShowAllData thuộc tính tắt Tự động lọc .
❺ Quay lại trang tính có một bảng và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAFfromEntireTable và nhấn nút Chạy nút.
Bây giờ là Bộ lọc tự động sẽ bị loại bỏ từ Toàn bộ Bảng giống như hình dưới đây:
6. Xóa tự động lọc khỏi trang tính được bảo vệ bằng mật khẩu nếu tồn tại
Tập dữ liệu sau được hiển thị trong hình bên dưới đã Tự động lọc được kích hoạt và được bảo vệ bằng mật khẩu . Đó là 7878 .
Trong phương pháp này, bạn sẽ nhận được mã VBA để xóa ra Tự động lọc từ trang tính được bảo vệ bằng mật khẩu như thế này.
Bây giờ hãy làm theo các bước bên dưới:
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Sub RemoveAFwithPass()
Dim UserPwd As String
UserPwd = "7878"
With ActiveSheet
.Unprotect Password:=UserPwd
.ShowAllData
.Protect _
Contents:=True, _
AllowFiltering:=True, _
UserInterfaceOnly:=True, _
Password:=UserPwd
End With
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Đầu tiên, tôi đã khai báo một biến và nhập mật khẩu.
- Sau đó, trong ActiveSheet , Tôi đã chỉ định Mật khẩu người dùng vào Bỏ bảo vệ mật khẩu.
- Đã sử dụng ShowAllData tài sản để hiện mọi thứ.
- Sau đó, tôi đã chỉ định Đúng vào Nội dung , AllowFiltering và UserInterfaceOnly để bỏ bảo vệ tất cả.
❺ Quay lại trang tính được bảo vệ bằng mật khẩu và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAFwithPass và nhấn nút Chạy nút.
Sau đó, Bộ lọc tự động sẽ bị loại bỏ và tất cả các bản ghi sẽ được hiển thị như thế này:
7. Sử dụng VBA để loại bỏ tự động lọc khỏi trang tính được bảo vệ mà không cần mật khẩu
Hình ảnh sau đây cho thấy một tập dữ liệu được bảo vệ không có mật khẩu . Trong phương pháp này, chúng tôi sẽ viết mã để xóa AutoFilter khỏi được bảo vệ không cần mật khẩu trang tính.
Bây giờ hãy làm theo các bước bên dưới:
❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.
❷ Sau đó đi tới Chèn >> Mô-đun .
❸ Sao chép VBA sau mã.
Sub RemoveAFwithoutPass()
With ActiveSheet
.Unprotect
.ShowAllData
.Protect _
Contents:=True, _
AllowFiltering:=True, _
UserInterfaceOnly:=True
End With
End Sub
❹ Dán và Lưu mã trong VBA Editor.
Phân tích mã
- Đầu tiên, tôi đã áp dụng Với trong ActiveSheet và sử dụng Unprotect thuộc tính để mở khóa
- Sau đó, tôi đã sử dụng ShowAllData tài sản để hiện mọi thứ.
- Sau đó, tôi đã chỉ định Đúng vào Nội dung , AllowFiltering và UserInterfaceOnly để bỏ bảo vệ tất cả.
❺ Quay lại trang tính đang hoạt động và nhấn ALT + F11 để mở Macro hộp thoại.
❻ Chọn macro RemoveAFwithoutPass và nhấn nút Chạy nút.
Cuối cùng, AutoFilter sẽ được xóa và tất cả dữ liệu sẽ được hiển thị như thế này:
Phần thực hành
Bạn sẽ nhận được một trang tính Excel giống như ảnh chụp màn hình sau đây, ở cuối tệp Excel được cung cấp. Nơi bạn có thể thực hành tất cả các phương pháp được thảo luận trong bài viết này.
Kết luận
Tóm lại, chúng ta đã thảo luận về 7 các phương pháp để loại bỏ Bộ lọc tự động nếu nó tồn tại sử dụng VBA trong Excel. Bạn nên tải xuống sách bài tập thực hành đính kèm với bài viết này và thực hành tất cả các phương pháp với tài liệu đó. Và đừng ngần ngại đặt bất kỳ câu hỏi nào trong phần bình luận bên dưới. Chúng tôi sẽ cố gắng trả lời tất cả các truy vấn có liên quan càng sớm càng tốt. Và vui lòng truy cập trang web của chúng tôi Exceldemy để khám phá thêm.
Các bài viết liên quan
- VBA để tự động lọc với nhiều tiêu chí trên cùng một trường trong Excel (4 phương pháp)
- Cách tự động lọc các giá trị không bằng một giá trị nhất định với VBA trong Excel
- Bộ lọc tự động VBA:Sắp xếp Nhỏ nhất đến Lớn nhất (3 Phương pháp)
- Cách tự động lọc và sao chép hàng hiển thị bằng Excel VBA