Microsoft Excel มีหลายวิธีในการ ลบ AutoFilter จาก Worksheet หรือ Excel Table ในบทความนี้ คุณจะได้เรียนรู้ 7 วิธีในการ ลบ AutoFilter หากมีอยู่ ใน Excel โดยใช้ VBA Scripts
คุณสามารถดาวน์โหลดไฟล์ Excel จากลิงก์ด้านล่างและฝึกฝนพร้อมกันได้
7 ตัวอย่างการใช้ VBA เพื่อลบ AutoFilter หากมีอยู่ใน Excel
1. ลบ AutoFilter จาก Active Worksheet หากมีอยู่
AutoFilter ทำงานอยู่ใน Active Worksheet เราจะลบ AutoFilter นี้โดยใช้โค้ด VBA

หากต้องการ ลบ AutoFilter จาก Active Worksheet ให้ทำตามขั้นตอนด้านล่าง:
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด VBA Editor
❷ จากนั้นไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
Public Sub RemoveAFActiveWorksheet()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
End Sub
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- สร้าง Sub Procedure Public Sub RemoveAFActiveWorksheet
- ใช้ IF Statement ตรวจสอบว่ามี AutoFilter อยู่หรือไม่ หากมี ให้ลบโดยตั้งค่า AutoFilterMode เป็น False
❺ กลับไปที่ Active Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFActiveWorksheet และกดปุ่ม Run

ตอนนี้คุณจะเห็นว่า AutoFilter ถูกลบแล้ว และข้อมูลทั้งหมด มองเห็นได้

อ่านเพิ่มเติม: Excel VBA to Check If AutoFilter is On (4 Easy Ways)
2. ใช้ VBA ลบ AutoFilter จาก Worksheet ทั้งหมด
ดูภาพด้านล่าง คุณจะเห็น AutoFilter ถูกใช้ใน Worksheet ทั้งสอง ตอนนี้เราจะเขียนโค้ด VBA เพื่อ ลบ AutoFilter จาก Worksheet ทั้งหมด ใน Workbook

เพื่อ ลบ AutoFilter จาก Worksheet ทั้งหมดใน Workbook ทำตามขั้นตอน:
❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
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
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ใช้ For loop เพื่อ ค้นหา AutoFilter ใน แต่ละ Worksheet
- ใช้ IF Statement ตรวจสอบว่ามีอยู่หรือไม่ หากมี ให้ลบโดยตั้งค่า ActiveSheet.AutoFilterMode เป็น False
❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFfromallWorksheets และกด Run

ตอนนี้คุณจะเห็นไอคอน AutoFilter ถูกลบทั้งหมด จาก Worksheet ทั้งหมด ใน Workbook ของคุณ

3. ล้าง AutoFilter จากคอลัมน์เดียวของ Table
ในภาพด้านล่าง คุณจะเห็น AutoFilter ถูกใช้เฉพาะใน คอลัมน์แรก ของตาราง ในวิธีนี้ เราจะเขียนโค้ดเพื่อ ล้าง AutoFilter จากคอลัมน์เดียว ของตารางใน Excel

วิธีทำ:
❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
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
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ประกาศ ตัวแปร 3 ตัว
- ระบุ ชื่อตาราง และ Set ชื่อชีท
- ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง
- ระบุ ดัชนีคอลัมน์ตาราง โดยใช้ AutoFilter Field
❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFSingleColumnfromTable และกด Run

หลังจากนั้น จะเห็นว่า AutoFilter ไม่มีอยู่ใน คอลัมน์แรก ของตารางแล้ว

4. ลบ AutoFilter จากหลายคอลัมน์ของ Table
ภาพด้านล่างแสดงไอคอน AutoFilter ใน คอลัมน์ที่หนึ่งและสอง ของตาราง คุณสามารถทำตามวิธีนี้เพื่อ ลบ AutoFilter จาก สองคอลัมน์ ของ ตาราง โดยใช้ VBA

ทำตามขั้นตอนด้านล่างเพื่อ ล้าง AutoFilter หากมีอยู่จากหลายคอลัมน์ ใน Excel Table
❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
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
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ประกาศ ตัวแปร 3 ตัว
- ระบุ ชื่อตาราง และ Set ชื่อชีท
- ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง
- ระบุ ดัชนีคอลัมน์ตารางสองคอลัมน์ โดยใช้ AutoFilter Field
❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro DeleteAFMultiColumnsfromTable และกด Run

หลังจากรันโค้ด AutoFilter จะถูก ลบ จาก หลายคอลัมน์

อ่านเพิ่มเติม: [Fix]: AutoFilter Method of Range Class Failed (5 Solutions)
5. ล้าง AutoFilter จากตารางทั้งหมดด้วย Excel VBA
หากคุณมี AutoFilter ใช้อยู่ในตารางเหมือนภาพด้านล่าง และต้องการ ลบ ทั้งหมด ให้ทำตามวิธีนี้

❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
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
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ประกาศ ตัวแปร 3 ตัว
- ระบุ ชื่อตาราง ถัดไป Set ชื่อชีท เป็น ActiveSheet
- ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง และใช้คำสั่ง Set เก็บไว้ใน xTable2
- ใช้คุณสมบัติ ShowAllData เพื่อปิด AutoFilter
❺ กลับไปที่ Worksheet ที่มีตาราง และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFfromEntireTable และกด Run

ตอนนี้ AutoFilter จะถูก ลบ จาก ตารางทั้งหมด

6. ลบ AutoFilter จาก Worksheet ที่ป้องกันด้วยรหัสผ่าน หากมีอยู่
ชุดข้อมูลในภาพด้านล่างมี AutoFilter เปิดอยู่ และ ป้องกันด้วยรหัสผ่าน ซึ่งคือ 7878
ในวิธีนี้ คุณจะได้ โค้ด VBA เพื่อ ล้าง AutoFilter จาก Worksheet ที่ป้องกันด้วยรหัสผ่าน แบบนี้

ทำตามขั้นตอนด้านล่าง:
❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
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
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ประกาศ ตัวแปร และ ใส่รหัสผ่าน
- ใน ActiveSheet กำหนด User Password ให้กับ Unprotect Password
- ใช้คุณสมบัติ ShowAllData เพื่อแสดงทุกอย่าง
- กำหนด True ให้ Contents, AllowFiltering, และ UserInterfaceOnly เพื่อ Unprotect ทั้งหมด
❺ กลับไปที่ Worksheet ที่ป้องกันด้วยรหัสผ่าน และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFwithPass และกด Run

หลังจากนั้น AutoFilter จะถูก ลบ และระเบียนทั้งหมดจะ มองเห็นได้

7. ใช้ VBA ลบ AutoFilter จาก Worksheet ที่ป้องกันโดยไม่มีรหัสผ่าน
ภาพด้านล่างแสดง ชุดข้อมูลที่ป้องกัน โดยไม่มี รหัสผ่าน ในวิธีนี้ เราจะเขียนโค้ดเพื่อ ลบ AutoFilter จาก Worksheet ที่ป้องกันโดยไม่มีรหัสผ่าน

ทำตามขั้นตอนด้านล่าง:
❶ กด ALT + F11 เปิด VBA Editor
❷ ไปที่ Insert >> Module

❸ Copy โค้ด VBA ต่อไปนี้
Sub RemoveAFwithoutPass()
With ActiveSheet
.Unprotect
.ShowAllData
.Protect _
Contents:=True, _
AllowFiltering:=True, _
UserInterfaceOnly:=True
End With
End Sub
❹ Paste และ Save โค้ดใน VBA Editor

การอธิบายโค้ด
- ใช้คำสั่ง With ใน ActiveSheet และใช้คุณสมบัติ Unprotect เพื่อ ปลดล็อก
- ใช้คุณสมบัติ ShowAllData เพื่อแสดงทุกอย่าง
- กำหนด True ให้ Contents, AllowFiltering, และ UserInterfaceOnly เพื่อปลดป้องกันทั้งหมด
❺ กลับไปที่ Active Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro
❻ เลือก macro RemoveAFwithoutPass และกด Run

สุดท้าย AutoFilter จะถูก ล้าง และข้อมูลทั้งหมดจะ มองเห็นได้

ส่วนฝึกฝน
คุณจะได้แผ่น Excel เหมือนภาพด้านล่าง ที่ท้ายของไฟล์ Excel ที่ให้มา สามารถฝึกฝนทุกวิธีที่อธิบายในบทความนี้ได้

สรุป
สรุปคือ เราได้อภิปราย 7 วิธีในการ ลบ AutoFilter หากมีอยู่ โดยใช้ VBA ใน Excel แนะนำให้ดาวน์โหลด Practice Workbook ที่แนบมาพร้อมบทความนี้ และฝึกทุกวิธีด้วยไฟล์นั้น และอย่าลังเลถามคำถามในส่วนความคิดเห็นด้านล่าง เราจะพยายามตอบคำถามที่เกี่ยวข้องให้เร็วที่สุด และกรุณาเยี่ยมชมเว็บไซต์ Exceldemy เพื่อสำรวจเพิ่มเติม
บทความที่เกี่ยวข้อง
- VBA to AutoFilter with Multiple Criteria on Same Field in Excel (4 Methods)
- How to Autofilter Values Not Equal to a Certain Value with VBA in Excel
- VBA Autofilter: Sort Smallest to Largest (3 Methods)
- How to Autofilter and Copy Visible Rows with Excel VBA