Nếu bạn đang vật vã tìm ra nguyên nhân và giải pháp cho thông báo lỗi AutoFilter method of Range Class Failed thì bài viết này dành cho bạn. Vậy, hãy đi sâu vào bài viết chính.
Tải xuống sổ làm việc
5 sửa lỗi cho vấn đề AutoFilter Method of Range Class Failed
Ở đây, chúng tôi sẽ chỉ ra 5 giải pháp có thể sử dụng bộ dữ liệu sau làm phạm vi nơi chúng ta sẽ áp dụng tính năng AutoFilter để lọc phạm vi dựa trên tiêu chí.

Chúng tôi đã dùng phiên bản Microsoft Excel 365 ở đây, bạn có thể dùng bất kỳ phiên bản nào khác theo sự tiện lợi.
Sửa lỗi 1: Sửa số trường (Field Number) để khắc phục lỗi AutoFilter Method of Range Class Failed
Ở đây, chúng ta sẽ thử lọc phạm vi sau dựa trên giá trị bán hàng lớn hơn 2500 với sự giúp đỡ của một mã VBA.

Để lọc phạm vi, chúng ta đã dùng mã sau
Sub fixing_autofilter_issue_1() Dim sht As Worksheet Set sht = Worksheets("Field Number") sht.Range("B3:D3").AutoFilter field:=100, Criteria1:=">=2500" End Sub
Ở đây, field: dùng để chỉ số cột của phạm vi, mà chúng ta gán là 100 nhưng không có quá 3 cột trong phạm vi này.

Vì vậy, sau khi nhấn F5 chúng ta nhận được thông báo lỗi AutoFilter method of Range Class Failed.

➤ Để giải quyết vấn đề này, dùng số trường chính xác tương ứng với số cột của phạm vi (chúng ta dùng 3 vì đó là số thứ tự của cột Doanh số của phạm vi).
Sub fixing_autofilter_issue_1() Dim sht As Worksheet Set sht = Worksheets("Field Number") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub

➤ Nhấn F5.
Bây giờ, bạn sẽ có thể lọc phạm vi theo tiêu chí mà không có thông báo lỗi.

Đọc thêm: Excel VBA kiểm tra xem AutoFilter có bật không (4 cách dễ dàng)
Sửa lỗi 2: Sử dụng phạm vi chính xác để khắc phục vấn đề AutoFilter Method of Range Class Failed
Chúng ta sẽ thử áp dụng bộ lọc trong bộ dữ liệu sau dựa trên cột Doanh số cho giá trị lớn hơn $2,500.00.

Chúng ta đã dùng mã sau để lọc phạm vi của trang Range.
Sub fixing_autofilter_issue_2() Dim sht As Worksheet Set sht = Worksheets("Range") sht.Range("D3:D100").AutoFilter field:=3, Criteria1:=">=2500" End Sub
Ở đây, chúng ta thấy dùng phạm vi D3:D100 và số trường 3, và các giá trị này không khớp nhau vì phạm vi này chỉ chứa một cột.

Vì vậy, sau khi nhấn F5 chúng ta lại nhận được thông báo lỗi.

➤ Sửa mã thành mã sau
Sub fixing_autofilter_issue_2() Dim sht As Worksheet Set sht = Worksheets("Range") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
Chúng ta đã thay phạm vi thành B3:D3 bây giờ.

➤ Nhấn F5.
Sau đó, bạn sẽ có thể lọc phạm vi theo tiêu chí mà không có thông báo lỗi.

Sửa lỗi 3: Vấn đề AutoFilter Method of Range Class Failed do lọc Bảng
Ở đây, chúng ta có Bảng sau nơi chúng ta sẽ thử áp dụng tùy chọn lọc với sự giúp đỡ của mã để lọc bảng này dựa trên cột Doanh số.

Cho mục đích này, chúng ta đã dùng mã sau
Sub fixing_autofilter_issue_3() Dim sht As Worksheet Set sht = Worksheets("Table") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
Dường như mọi thứ ổn trong mã này. Hãy kiểm tra.

Nhưng sau khi nhấn F5, chúng ta nhận được thông báo lỗi.

Để giải quyết vấn đề này, chúng ta phải chuyển đổi bảng này thành phạm vi.
➤ Chọn bảng rồi vào tab Thiết kế Bảng >> Nhóm Công cụ >> tùy chọn Chuyển đổi thành phạm vi.

Sau đó, hộp thông báo sẽ xuất hiện để xác nhận việc chuyển đổi.
➤ Nhấn Có ở đây.

Sau đó, bạn sẽ nhận được phạm vi từ bảng đã tạo.

➤ Bây giờ, hãy áp dụng lại mã trước.
Sub fixing_autofilter_issue_3() Dim sht As Worksheet Set sht = Worksheets("Table") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub

➤ Nhấn F5.
Như bạn thấy, lần này phương pháp AutoFilter hoạt động bình thường.

Sửa lỗi 4: Vấn đề AutoFilter Method of Range Class Failed do lọc Bảng Pivot
Ở đây, chúng ta có Bảng Pivot sau nơi chúng ta có giá trị bán hàng ở cột thứ hai dựa trên đó chúng ta sẽ áp dụng phương pháp AutoFilter.

Vì vậy, chúng ta đã áp dụng mã sau.
Sub fixing_autofilter_issue_4() Dim sht As Worksheet Set sht = Worksheets("Pivot") sht.Range("A3:B3").AutoFilter field:=2, Criteria1:=">=2500" End Sub
Ở đây, số trường 2 là cho cột thứ hai của phạm vi A3:B3.

Sau khi nhấn F5, bạn sẽ nhận được thông báo lỗi AutoFilter method of Range Class Failed.

Để giải quyết vấn đề này, bạn có thể áp dụng phương pháp AutoFilter cho phạm vi nguồn của Bảng Pivot.
Như bạn thấy, phạm vi nguồn chúng ta có cho bảng này nằm ở trang Source và ở đây chúng ta sẽ áp dụng mã.

➤ Áp dụng mã sau cho phạm vi nguồn này.
Sub fixing_autofilter_issue_4_1() Dim sht As Worksheet Set sht = Worksheets("Source") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub

➤ Nhấn F5.
Cuối cùng, bạn sẽ có thể lọc xuống phạm vi dựa trên tiêu chí cho cột Doanh số.

Sửa lỗi 5: Vấn đề do dùng toàn bộ phạm vi thay vì chỉ tiêu đề
Trong phần này, chúng ta sẽ thảo luận một vấn đề nhỏ khó mà kích hoạt thông báo lỗi AutoFilter Method of Range Class Failed. Nhưng bạn có thể nhận thức được sự việc đó có thể là nguyên nhân của lỗi này.
Giống như ví dụ trước, chúng ta sẽ áp dụng phương pháp AutoFilter cho phạm vi sau.

Chúng ta đã dùng mã sau để áp dụng bộ lọc.
Sub fixing_autofilter_issue_5() Dim sht As Worksheet Set sht = Worksheets("Header") sht.Range("B3:D11").AutoFilter field:=3, Criteria1:=">=2500" End Sub
Ở đây, chúng ta dùng phạm vi B3:D11 cho toàn bộ bộ dữ liệu là không cần thiết, và đôi khi nó có thể là nguyên nhân của thông báo lỗi đó cho phạm vi lớn.

Vì vậy, chúng ta có thể thay đổi mã đó thành mã sau bằng cách chỉ dùng tiêu đề làm phạm vi.
Sub fixing_autofilter_issue_5() Dim sht As Worksheet Set sht = Worksheets("Header") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub

Sau khi nhấn F5, bạn sẽ nhận được kết quả mong muốn mà không gặp vấn đề gì.

Kết luận
Trong bài viết này, chúng tôi đã cố gắng bao gồm các sửa lỗi có thể cho vấn đề AutoFilter method of Range Class Failed trong Excel. Hy vọng bạn sẽ thấy hữu ích. Nếu bạn có bất kỳ góp ý hoặc câu hỏi nào, hãy chia sẻ trong phần bình luận.
Bài viết liên quan
- Cách tự động lọc và sao chép hàng hiển thị với Excel VBA
- VBA AutoFilter: Sắp xếp từ nhỏ đến lớn (3 phương pháp)
- Cách tự động lọc giá trị không bằng giá trị nhất định với VBA trong Excel
- Excel VBA: Xóa AutoFilter nếu tồn tại (7 ví dụ)