Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Microsoft Excel cung cấp nhiều cách để xóa AutoFilter khỏi trang tính hoặc Bảng Excel. Trong bài viết này, bạn sẽ học 7 phương pháp để xóa AutoFilter nếu nó tồn tại trong Excel bằng script VBA.

Bạn có thể tải file Excel từ liên kết sau và thực hành cùng với nó.

7 Ví Dụ Dùng VBA Để Xóa AutoFilter Nếu Tồn Tại Trong Excel

1. Xóa AutoFilter Khỏi Trang Tính Hoạt Động Nếu Tồn Tại

Ảnh chụp màn hình sau cho thấy AutoFilter đang hoạt động trong trang tính hoạt động. Chúng ta sẽ xóa AutoFilter này bằng code VBA.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Nếu bạn muốn xóa AutoFilter khỏi trang tính hoạt động thì làm theo các bước dưới:

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

Public Sub RemoveAFActiveWorksheet() If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False End If End Sub

❹ Dán và Lưu code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Ở đây, tôi tạo một Sub Procedure Public Sub RemoveAFActiveWorksheet
  • Tiếp theo, tôi dùng câu lệnh IF để kiểm tra nếu tồn tại bất kỳ AutoFilter nào nếu tồn tại nó sẽ xóa AutoFilter vì tôi đặt AutoFilterMode thành False.

❺ Quay lại trang tính hoạt động và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFActiveWorksheet và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ bạn sẽ thấy AutoFilter đã bị xóa và tất cả dữ liệu đều hiển thị bây giờ.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Đọc thêm: Excel VBA Kiểm Tra Nếu AutoFilter Đang Bật (4 Cách Dễ Dàng)

2. Dùng VBA Để Xóa AutoFilter Khỏi Tất Cả Các Trang Tính

Nhìn hình sau. Bạn thấy AutoFilter được áp dụng trên cả hai trang tính. Bây giờ chúng ta sẽ viết code VBA để xóa AutoFilter khỏi tất cả các trang tính trong một sổ làm việc.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Để xóa AutoFilter khỏi tất cả các trang tính trong sổ làm việc làm theo các bước dưới:

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

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 code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Ở đây, tôi dùng vòng lặp For để tìm kiếm AutoFilter trong từng trang tính.
  • Tiếp theo, tôi dùng câu lệnh IF để kiểm tra nếu tồn tại nếu tồn tại nó sẽ xóa AutoFilter vì tôi đặt ActiveSheet.AutoFilterMode thành False.

❺ Quay lại trang tính của bạn và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFfromallWorksheets và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ bạn sẽ thấy tất cả biểu tượng AutoFilter bị xóa khỏi 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:

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

3. Xóa AutoFilter Khỏi Một Cột Đơn Của Bảng

Trong hình dưới, bạn thấy AutoFilter chỉ được áp dụng ở cột đầu tiên của bảng. Trong phương pháp này, chúng ta sẽ viết code để xóa AutoFilter khỏi một cột đơn của bảng trong Excel.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Để làm điều đó,

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Bây giờ Sao chép code VBA sau.

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 code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Trước tiên, tôi khai báo 3 biến.
  • Sau đó tôi chèn tên bảng và Set tên trang tính.
  • Sau đó, tôi dùng thuộc tính ListObjects để làm hiển thị tất cả nội dung của một bảng.
  • Cuối cùng, tôi nhập một chỉ số cột bảng dùng AutoFilter Field

❺ Quay lại trang tính của bạn và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFSingleColumnfromTable và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Sau đó, bạn sẽ thấy AutoFilter không còn tồn tại ở cột đầu tiên của bảng bạn.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

4. Xóa AutoFilter Khỏi Nhiều Cột Của Bảng

Hình sau cho thấy hai AutoFilter biểu tượng ở cột đầu tiên và thứ hai của một bảng. Bạn có thể làm theo phương pháp này để xóa AutoFilter khỏi hai cột của một bảng dùng VBA.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ làm theo các bước dưới để xóa AutoFilter nếu tồn tại khỏi nhiều cột trong Bảng Excel.

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

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 code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Trước tiên, tôi khai báo 3 biến.
  • Sau đó tôi chèn tên bảng và Set tên trang tính.
  • Sau đó, tôi dùng thuộc tính ListObjects để làm hiển thị tất cả nội dung của một bảng.
  • Cuối cùng, tôi nhập hai chỉ số cột bảng dùng AutoFilter Field

❺ Bây giờ, quay lại trang tính và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro DeleteAFMultiColumnsfromTable và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Sau khi chạy code, bạn sẽ thấy AutoFilter bị xóa khỏi nhiều cột.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Đọc thêm: [Sửa Lỗi:] Phương Thức AutoFilter Của Lớp Range Thất Bại (5 Giải Pháp)

5. Xóa AutoFilter Khỏi Toàn Bộ Bảng Dùng Excel VBA

Nếu bạn có AutoFilter được áp dụng trong bảng giống như hình dưới và muốn xóa tất cả, thì hãy làm theo phương pháp này.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

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 code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Trước tiên, tôi khai báo 3 biến.
  • Sau đó tôi chèn tên bảng tiếp theo Set tên trang tính là ActiveSheet.
  • Sau đó, tôi dùng thuộc tính ListObjects để làm hiển thị tất cả nội dung của một bảng và dùng câu lệnh Set để lưu nó trong xTable2
  • Cuối cùng, tôi dùng thuộc tính ShowAllData để tắt AutoFilter.

❺ Quay lại trang tính có bảng và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFfromEntireTable và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ AutoFilter sẽ bị xóa khỏi Toàn Bộ Bảng giống như hình dưới:

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

6. Xóa AutoFilter Khỏi Trang Tính Được Bảo Vệ Mật Khẩu Nếu Tồn Tại

Tập dữ liệu sau như hình dưới có AutoFilter được kích hoạt và được bảo vệ bằng mật khẩu. Mật khẩu là 7878.

Trong phương pháp này, bạn sẽ có code VBA để xóa hết AutoFilter khỏi trang tính được bảo vệ mật khẩu như thế này.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ làm theo các bước dưới:

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

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 code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Trước tiên, tôi khai báo một biến và nhập mật khẩu.
  • Sau đó trong ActiveSheet, tôi gán Mật Khẩu Người Dùng cho Mật Khẩu Bỏ Bảo Vệ.
  • Dùng thuộc tính ShowAllData để hiện tất cả.
  • Sau đó tôi gán True cho Contents, AllowFiltering, và UserInterfaceOnly để bỏ bảo vệ tất cả.

❺ Quay lại trang tính được bảo vệ mật khẩu và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFwithPass và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Sau đó, AutoFilter sẽ bị xóa và tất cả bản ghi sẽ hiển thị như sau:

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

7. Dùng VBA Để Xóa AutoFilter Khỏi Trang Tính Được Bảo Vệ Không Mật Khẩu

Hình sau cho thấy 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 ta sẽ viết code để xóa AutoFilter khỏi trang tính được bảo vệ không mật khẩu.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Bây giờ làm theo các bước dưới:

❶ Trước hết, nhấn ALT + F11 để mở VBA Editor.

❷ Sau đó vào Insert >> Module.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

❸ Sao chép code VBA sau.

Sub RemoveAFwithoutPass() With ActiveSheet .Unprotect .ShowAllData .Protect _ Contents:=True, _ AllowFiltering:=True, _ UserInterfaceOnly:=True End With End Sub

❹ Dán và Lưu code trong VBA Editor.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phân Tích Code

  • Trước tiên, tôi áp dụng câu lệnh With trong ActiveSheet và dùng thuộc tính Unprotect để mở khóa
  • Sau đó, tôi dùng thuộc tính ShowAllData để hiện tất cả.
  • Sau đó tôi gán True cho Contents, AllowFiltering, và UserInterfaceOnly để bỏ bảo vệ tất cả.

❺ Quay lại trang tính hoạt động và nhấn ALT + F11 để mở hộp thoại Macro .

❻ Chọn macro RemoveAFwithoutPass và nhấn nút Run .

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Cuối cùng, AutoFilter sẽ bị xóa sạch và tất cả dữ liệu sẽ hiển thị như sau:

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Phần Thực Hành

Bạn sẽ nhận được trang tính Excel như ảnh chụp màn hình sau, ở cuối file Excel cung cấp. Nơi bạn có thể thực hành tất cả các phương pháp thảo luận trong bài viết này.

Excel VBA: Xóa An Toàn AutoFilters – 7 Kỹ Thuật Chứng Minh

Kết Luận

Tóm lại, chúng tôi đã thảo luận 7 phương pháp để xóa Autofilter nếu nó tồn tại dùng VBA trong Excel. Bạn được khuyến khích tải file thực hành đính kèm cùng bài viết và thực hành tất cả phương pháp với file đó. Và đừng ngần ngại đặt bất kỳ câu hỏi nào ở phần bình luận dưới đây. Chúng tôi sẽ cố gắng phản hồi tất cả các truy vấn liên quan càng sớm càng tốt. Và vui lòng truy cập trang web Exceldemy để khám phá thêm.

Các Bài Viết Liên Quan

  • VBA Để AutoFilter Với Nhiều Tiêu Chí Trên Cùng Trường Trong Excel (4 Phương Pháp)
  • Cách Tự Động Lọc Giá Trị Không Bằng Giá Trị Cụ Thể Với VBA Trong Excel
  • VBA Autofilter: Sắp Xếp Nhỏ Đến Lớn (3 Phương Pháp)
  • Cách Tự Động Lọc Và Sao Chép Hàng Hiển Thị Với Excel VBA