Microsoft Excel มีหลายวิธีในการลบตัวกรองอัตโนมัติ จาก แผ่นงาน หรือ ตาราง Excel ในบทความนี้ คุณจะได้เรียนรู้ 7 วิธีการลบตัวกรองอัตโนมัติหากมีอยู่ ใน Excel โดยใช้ สคริปต์ VBA
คุณสามารถดาวน์โหลดไฟล์ Excel จากลิงค์ต่อไปนี้และฝึกฝนไปพร้อมๆ กับมัน
7 ตัวอย่างการใช้ VBA เพื่อลบตัวกรองอัตโนมัติหากมีอยู่ใน Excel
1. ลบตัวกรองอัตโนมัติออกจากแผ่นงานที่ใช้งานอยู่หากมีอยู่
ภาพหน้าจอต่อไปนี้แสดง ตัวกรองอัตโนมัติ ในการดำเนินการในแผ่นงานที่ใช้งานอยู่ เราจะลบ ตัวกรองอัตโนมัติ . นี้ โดยใช้ VBA รหัส.
หากคุณต้องการ ลบตัวกรองอัตโนมัติ จากแผ่นงานที่ใช้งานอยู่ จากนั้นทำตามขั้นตอนด้านล่าง:
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก VBA ต่อไปนี้ รหัส.
Public Sub RemoveAFActiveWorksheet()
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
End Sub
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- ที่นี่ ฉันได้สร้าง ขั้นตอนย่อย ย่อยสาธารณะ RemoveAFActiveWorksheet
- ต่อไป ฉันใช้ คำสั่ง IF เพื่อตรวจสอบว่ามี อยู่ . หรือไม่ ตัวกรองอัตโนมัติใดๆ ถ้า มีอยู่ มันจะลบ ตัวกรองอัตโนมัติ ขณะที่ฉันตั้งค่า AutoFilterMode เป็น เท็จ .
❺ กลับไปที่ เวิร์กชีตที่ใช้งานอยู่ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFActiveWorksheet และกด วิ่ง ปุ่ม.
ตอนนี้ คุณจะเห็น ตัวกรองอัตโนมัติ ถูก ลบ และข้อมูลทั้งหมดมองเห็นได้ ตอนนี้
อ่านเพิ่มเติม: Excel VBA เพื่อตรวจสอบว่า AutoFilter เปิดอยู่ (4 วิธีง่ายๆ)
2. การใช้ VBA เพื่อลบตัวกรองอัตโนมัติจากแผ่นงานทั้งหมด
ดูภาพต่อไปนี้ คุณสามารถดู ตัวกรองอัตโนมัติ ถูกนำไปใช้กับเวิร์กชีตทั้งสอง ตอนนี้เราจะเขียน VBA รหัสเพื่อ ลบตัวกรองอัตโนมัติ จาก แผ่นงานทั้งหมด ในสมุดงาน .
ในการลบตัวกรองอัตโนมัติออกจากแผ่นงานทั้งหมดในสมุดงาน ทำตามขั้นตอนด้านล่าง:
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก 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
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- ที่นี่ ฉันใช้ For loop เพื่อ ค้นหา สำหรับ ตัวกรองอัตโนมัติ ในแต่ละแผ่นงาน
- ต่อไป ฉันใช้ คำสั่ง IF เพื่อตรวจสอบว่ามี อยู่ . หรือไม่ ถ้า มีอยู่ มันจะลบ ตัวกรองอัตโนมัติ ขณะที่ฉันตั้งค่า ActiveSheet.AutoFilterMode เป็น เท็จ .
❺ กลับไปที่ เวิร์กชีต . ของคุณ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFfromallWorksheets และกด วิ่ง ปุ่ม.
ตอนนี้ คุณจะเห็น ไอคอนตัวกรองอัตโนมัติทั้งหมดถูกลบ จาก แผ่นงานทั้งหมด ใน สมุดงาน . ของคุณ เช่นเดียวกับภาพด้านล่าง:
3. ล้างตัวกรองอัตโนมัติจากคอลัมน์เดียวของตาราง
ในภาพด้านล่าง คุณจะเห็นว่า ตัวกรองอัตโนมัติ ใช้เฉพาะใน คอลัมน์แรก ของตาราง ในวิธีนี้ เราจะเขียนโค้ดเพื่อ ล้างตัวกรองอัตโนมัติจากคอลัมน์เดียว ของตารางใน Excel
ในการทำเช่นนั้น
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ ตอนนี้ คัดลอก 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
❹ หลังจากนั้น วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- อันดับแรก ฉัน ประกาศตัวแปร 3 ตัว
- จากนั้นฉันก็แทรก ชื่อตาราง และ ตั้งค่า ชื่อแผ่นงาน .
- หลังจากนั้น ฉันใช้ ListObjects คุณสมบัติ ทำให้มองเห็นได้ เนื้อหาทั้งหมด ของ โต๊ะ .
- สุดท้ายนี้ ฉัน ป้อนข้อมูล a ดัชนีคอลัมน์ตาราง โดยใช้ช่องกรองอัตโนมัติ
❺ กลับไปที่ เวิร์กชีต . ของคุณ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFSingleColumnfromTable และกด วิ่ง ปุ่ม.
หลังจากนั้น คุณจะเห็น ตัวกรองอัตโนมัติ ไม่มีอยู่ในคอลัมน์แรก .แล้ว ของโต๊ะของคุณ
4. ลบตัวกรองอัตโนมัติออกจากหลายคอลัมน์ของตาราง
รูปภาพต่อไปนี้แสดง ตัวกรองอัตโนมัติ two สองตัว ไอคอนใน แรก และ วินาที คอลัมน์ของตาราง คุณสามารถทำตามวิธีนี้เพื่อ ลบตัวกรองอัตโนมัติ จากสองคอลัมน์ ของ ตาราง โดยใช้ VBA .
ทำตามขั้นตอนด้านล่างเพื่อล้างตัวกรองอัตโนมัติหากมีอยู่ในหลายคอลัมน์ ใน ตาราง Excel
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก 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
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- อันดับแรก ฉัน ประกาศตัวแปร 3 ตัว
- จากนั้นฉันก็แทรก ชื่อตาราง และ ตั้งค่า ชื่อแผ่นงาน .
- หลังจากนั้น ฉันใช้ ListObjects คุณสมบัติ ทำให้มองเห็นได้ เนื้อหาทั้งหมด ของ โต๊ะ .
- สุดท้ายนี้ ฉัน ป้อนข้อมูล สองดัชนีคอลัมน์ตาราง โดยใช้ช่องกรองอัตโนมัติ
❺ ตอนนี้ กลับไปที่ แผ่นงาน แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร DeleteAFMultiColumnsfromTable และกด วิ่ง ปุ่ม.
หลังจากรันโค้ด คุณจะเห็น ตัวกรองอัตโนมัติ ถูกลบ จากหลายคอลัมน์
อ่านเพิ่มเติม: [แก้ไข]:วิธีการกรองอัตโนมัติของคลาสช่วงล้มเหลว (5 โซลูชัน)
5. ล้างตัวกรองอัตโนมัติจากทั้งตารางโดยใช้ Excel VBA
หากคุณมี ตัวกรองอัตโนมัติ นำไปใช้กับตารางของคุณเหมือนภาพด้านล่างและต้องการ ลบ ทั้งหมดแล้วค่อยทำตามวิธีนี้
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก 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
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- อันดับแรก ฉัน ประกาศตัวแปร 3 ตัว
- จากนั้นฉันก็แทรก ชื่อตาราง ถัดไป ตั้งค่า ชื่อแผ่นงาน เป็น ActiveSheet .
- หลังจากนั้น ฉันใช้ ListObjects คุณสมบัติ ทำให้มองเห็นได้ เนื้อหาทั้งหมด ของ ตาราง และใช้ Set คำสั่งที่จะเก็บไว้ใน xTable2
- สุดท้าย ฉันใช้ ShowAllData คุณสมบัติเพื่อปิด ตัวกรองอัตโนมัติ .
❺ กลับไปที่ เวิร์กชีต มีโต๊ะแล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFfromEntireTable และกด วิ่ง ปุ่ม.
ตอนนี้ ตัวกรองอัตโนมัติ จะ ลบ จากทั้งตาราง เช่นเดียวกับภาพด้านล่าง:
6. ลบตัวกรองอัตโนมัติจากแผ่นงานที่มีการป้องกันด้วยรหัสผ่าน หากมี
ชุดข้อมูลต่อไปนี้ที่แสดงในภาพด้านล่าง เปิดใช้งานตัวกรองอัตโนมัติ และ ป้องกันด้วยรหัสผ่าน . ซึ่งก็คือ 7878 .
ในวิธีนี้ คุณจะได้รับ รหัส VBA เพื่อ เคลียร์ ออก กรองอัตโนมัติ จากเวิร์กชีตที่มีการป้องกันด้วยรหัสผ่าน แบบนี้
ทำตามขั้นตอนด้านล่าง:
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก 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
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- อันดับแรก ฉัน ประกาศตัวแปร และป้อนรหัสผ่าน
- จากนั้นใน ActiveSheet ฉันกำหนด รหัสผ่านผู้ใช้ ไปที่ ยกเลิกการป้องกันรหัสผ่าน
- ใช้ ShowAllData คุณสมบัติเพื่อยกเลิกการซ่อนทุกอย่าง
- จากนั้นฉันก็กำหนดให้ จริง ไปยัง เนื้อหา , อนุญาตการกรอง และ ส่วนต่อประสานผู้ใช้เท่านั้น เพื่อ ป้องกัน ทั้งหมด
❺ กลับไปที่ เวิร์กชีตที่มีการป้องกันด้วยรหัสผ่าน แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFwithPass และกด วิ่ง ปุ่ม.
หลังจากนั้น ตัวกรองอัตโนมัติ จะ ลบ และบันทึกทั้งหมดจะ มองเห็นได้ แบบนี้:
7. การใช้ VBA เพื่อลบตัวกรองอัตโนมัติออกจากแผ่นงานที่มีการป้องกันโดยไม่ต้องใช้รหัสผ่าน
รูปภาพต่อไปนี้แสดง ชุดข้อมูลที่ได้รับการป้องกัน ไม่มี รหัสผ่าน . ในวิธีนี้ เราจะเขียนโค้ดเพื่อ ลบตัวกรองอัตโนมัติ จากป้องกันด้วยรหัสผ่าน ใบงาน
ทำตามขั้นตอนด้านล่าง:
❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA
❷ จากนั้นไปที่ แทรก >> โมดูล .
❸ คัดลอก VBA ต่อไปนี้ รหัส.
Sub RemoveAFwithoutPass()
With ActiveSheet
.Unprotect
.ShowAllData
.Protect _
Contents:=True, _
AllowFiltering:=True, _
UserInterfaceOnly:=True
End With
End Sub
❹ วาง และ บันทึก รหัสใน ตัวแก้ไข VBA
รายละเอียดของโค้ด
- ก่อนอื่น ฉันใช้ ด้วย คำสั่งใน ActiveSheet และใช้ Unprotect คุณสมบัติ ปลดล็อก
- จากนั้น ฉันใช้ ShowAllData คุณสมบัติเพื่อยกเลิกการซ่อนทุกอย่าง
- จากนั้นฉันก็กำหนดให้ จริง ไปยัง เนื้อหา , อนุญาตการกรอง และ ส่วนต่อประสานผู้ใช้เท่านั้น เพื่อยกเลิกการป้องกันทั้งหมด
❺ กลับไปที่ เวิร์กชีตที่ใช้งานอยู่ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ
❻ เลือก มาโคร RemoveAFwithoutPass และกด วิ่ง ปุ่ม.
สุดท้าย ตัวกรองอัตโนมัติ จะ เคลียร์ และข้อมูลทั้งหมดจะมองเห็นได้ แบบนี้:
ภาคปฏิบัติ
คุณจะได้แผ่นงาน Excel ดังภาพหน้าจอต่อไปนี้ ที่ส่วนท้ายของไฟล์ Excel ที่ให้มา ซึ่งคุณสามารถฝึกฝนวิธีการทั้งหมดที่กล่าวถึงในบทความนี้
บทสรุป
โดยสรุป เราได้พูดคุยกัน 7 วิธีการ ลบตัวกรองอัตโนมัติหากมีอยู่ โดยใช้ VBA ใน Excel ขอแนะนำให้คุณดาวน์โหลดแบบฝึกหัดที่แนบมาพร้อมกับบทความนี้และฝึกฝนวิธีการทั้งหมดด้วย และอย่าลังเลที่จะถามคำถามใด ๆ ในส่วนความคิดเห็นด้านล่าง เราจะพยายามตอบคำถามที่เกี่ยวข้องทั้งหมดโดยเร็วที่สุด และโปรดเยี่ยมชมเว็บไซต์ของเรา Exceldemy เพื่อสำรวจเพิ่มเติม
บทความที่เกี่ยวข้อง
- VBA เป็นตัวกรองอัตโนมัติที่มีหลายเกณฑ์ในฟิลด์เดียวกันใน Excel (4 วิธี)
- วิธีการกรองค่าอัตโนมัติไม่เท่ากับค่าที่แน่นอนด้วย VBA ใน Excel
- ตัวกรองอัตโนมัติ VBA:เรียงลำดับจากน้อยไปหามาก (3 วิธี)
- วิธีการกรองอัตโนมัติและคัดลอกแถวที่มองเห็นได้ด้วย Excel VBA