Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

หากต้องการ ลบ AutoFilter จาก Active Worksheet ให้ทำตามขั้นตอนด้านล่าง:

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด VBA Editor

❷ จากนั้นไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ Copy โค้ด VBA ต่อไปนี้

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

❹ Paste และ Save โค้ดใน VBA Editor

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • สร้าง Sub Procedure Public Sub RemoveAFActiveWorksheet
  • ใช้ IF Statement ตรวจสอบว่ามี AutoFilter อยู่หรือไม่ หากมี ให้ลบโดยตั้งค่า AutoFilterMode เป็น False

❺ กลับไปที่ Active Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFActiveWorksheet และกดปุ่ม Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

อ่านเพิ่มเติม: Excel VBA to Check If AutoFilter is On (4 Easy Ways)

2. ใช้ VBA ลบ AutoFilter จาก Worksheet ทั้งหมด

ดูภาพด้านล่าง คุณจะเห็น AutoFilter ถูกใช้ใน Worksheet ทั้งสอง ตอนนี้เราจะเขียนโค้ด VBA เพื่อ ลบ AutoFilter จาก Worksheet ทั้งหมด ใน Workbook

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

เพื่อ ลบ AutoFilter จาก Worksheet ทั้งหมดใน Workbook ทำตามขั้นตอน:

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ 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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ใช้ For loop เพื่อ ค้นหา AutoFilter ใน แต่ละ Worksheet
  • ใช้ IF Statement ตรวจสอบว่ามีอยู่หรือไม่ หากมี ให้ลบโดยตั้งค่า ActiveSheet.AutoFilterMode เป็น False

❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFfromallWorksheets และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

3. ล้าง AutoFilter จากคอลัมน์เดียวของ Table

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

วิธีทำ:

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ 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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ประกาศ ตัวแปร 3 ตัว
  • ระบุ ชื่อตาราง และ Set ชื่อชีท
  • ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง
  • ระบุ ดัชนีคอลัมน์ตาราง โดยใช้ AutoFilter Field

❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFSingleColumnfromTable และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

4. ลบ AutoFilter จากหลายคอลัมน์ของ Table

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

ทำตามขั้นตอนด้านล่างเพื่อ ล้าง AutoFilter หากมีอยู่จากหลายคอลัมน์ ใน Excel Table

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ 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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ประกาศ ตัวแปร 3 ตัว
  • ระบุ ชื่อตาราง และ Set ชื่อชีท
  • ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง
  • ระบุ ดัชนีคอลัมน์ตารางสองคอลัมน์ โดยใช้ AutoFilter Field

❺ กลับไปที่ Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro DeleteAFMultiColumnsfromTable และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

อ่านเพิ่มเติม: [Fix]: AutoFilter Method of Range Class Failed (5 Solutions)

5. ล้าง AutoFilter จากตารางทั้งหมดด้วย Excel VBA

หากคุณมี AutoFilter ใช้อยู่ในตารางเหมือนภาพด้านล่าง และต้องการ ลบ ทั้งหมด ให้ทำตามวิธีนี้

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ 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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ประกาศ ตัวแปร 3 ตัว
  • ระบุ ชื่อตาราง ถัดไป Set ชื่อชีท เป็น ActiveSheet
  • ใช้คุณสมบัติ ListObjects เพื่อ แสดง เนื้อหาทั้งหมดของ ตาราง และใช้คำสั่ง Set เก็บไว้ใน xTable2
  • ใช้คุณสมบัติ ShowAllData เพื่อปิด AutoFilter

❺ กลับไปที่ Worksheet ที่มีตาราง และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFfromEntireTable และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

6. ลบ AutoFilter จาก Worksheet ที่ป้องกันด้วยรหัสผ่าน หากมีอยู่

ชุดข้อมูลในภาพด้านล่างมี AutoFilter เปิดอยู่ และ ป้องกันด้วยรหัสผ่าน ซึ่งคือ 7878

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

ทำตามขั้นตอนด้านล่าง:

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ 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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ประกาศ ตัวแปร และ ใส่รหัสผ่าน
  • ใน ActiveSheet กำหนด User Password ให้กับ Unprotect Password
  • ใช้คุณสมบัติ ShowAllData เพื่อแสดงทุกอย่าง
  • กำหนด True ให้ Contents, AllowFiltering, และ UserInterfaceOnly เพื่อ Unprotect ทั้งหมด

❺ กลับไปที่ Worksheet ที่ป้องกันด้วยรหัสผ่าน และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFwithPass และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

7. ใช้ VBA ลบ AutoFilter จาก Worksheet ที่ป้องกันโดยไม่มีรหัสผ่าน

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

ทำตามขั้นตอนด้านล่าง:

❶ กด ALT + F11 เปิด VBA Editor

❷ ไปที่ Insert >> Module

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

❸ Copy โค้ด VBA ต่อไปนี้

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

❹ Paste และ Save โค้ดใน VBA Editor

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

การอธิบายโค้ด

  • ใช้คำสั่ง With ใน ActiveSheet และใช้คุณสมบัติ Unprotect เพื่อ ปลดล็อก
  • ใช้คุณสมบัติ ShowAllData เพื่อแสดงทุกอย่าง
  • กำหนด True ให้ Contents, AllowFiltering, และ UserInterfaceOnly เพื่อปลดป้องกันทั้งหมด

❺ กลับไปที่ Active Worksheet และกด ALT + F11 เปิดกล่องโต้ตอบ Macro

❻ เลือก macro RemoveAFwithoutPass และกด Run

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

ส่วนฝึกฝน

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

Excel VBA: ลบ AutoFilters อย่างปลอดภัย – 7 เทคนิคที่พิสูจน์แล้ว

สรุป

สรุปคือ เราได้อภิปราย 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