Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

Microsoft Excel มีหลายวิธีในการลบตัวกรองอัตโนมัติ จาก แผ่นงาน หรือ ตาราง Excel ในบทความนี้ คุณจะได้เรียนรู้ 7 วิธีการลบตัวกรองอัตโนมัติหากมีอยู่ ใน Excel โดยใช้ สคริปต์ VBA

คุณสามารถดาวน์โหลดไฟล์ Excel จากลิงค์ต่อไปนี้และฝึกฝนไปพร้อมๆ กับมัน

7 ตัวอย่างการใช้ VBA เพื่อลบตัวกรองอัตโนมัติหากมีอยู่ใน Excel

1. ลบตัวกรองอัตโนมัติออกจากแผ่นงานที่ใช้งานอยู่หากมีอยู่

ภาพหน้าจอต่อไปนี้แสดง ตัวกรองอัตโนมัติ ในการดำเนินการในแผ่นงานที่ใช้งานอยู่ เราจะลบ ตัวกรองอัตโนมัติ . นี้ โดยใช้ VBA รหัส.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

หากคุณต้องการ ลบตัวกรองอัตโนมัติ จากแผ่นงานที่ใช้งานอยู่ จากนั้นทำตามขั้นตอนด้านล่าง:

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก VBA ต่อไปนี้ รหัส.

Public Sub RemoveAFActiveWorksheet()

  If ActiveSheet.AutoFilterMode Then
     ActiveSheet.AutoFilterMode = False
  End If

End Sub

วาง และ บันทึก รหัสใน ตัวแก้ไข VBA

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • ที่นี่ ฉันได้สร้าง ขั้นตอนย่อย ย่อยสาธารณะ RemoveAFActiveWorksheet
  • ต่อไป ฉันใช้ คำสั่ง IF เพื่อตรวจสอบว่ามี อยู่ . หรือไม่ ตัวกรองอัตโนมัติใดๆ ถ้า มีอยู่ มันจะลบ ตัวกรองอัตโนมัติ ขณะที่ฉันตั้งค่า AutoFilterMode เป็น เท็จ .

❺ กลับไปที่ เวิร์กชีตที่ใช้งานอยู่ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFActiveWorksheet และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

อ่านเพิ่มเติม: Excel VBA เพื่อตรวจสอบว่า AutoFilter เปิดอยู่ (4 วิธีง่ายๆ)

2. การใช้ VBA เพื่อลบตัวกรองอัตโนมัติจากแผ่นงานทั้งหมด

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ในการลบตัวกรองอัตโนมัติออกจากแผ่นงานทั้งหมดในสมุดงาน ทำตามขั้นตอนด้านล่าง:

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก 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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • ที่นี่ ฉันใช้ For loop เพื่อ ค้นหา สำหรับ ตัวกรองอัตโนมัติ ในแต่ละแผ่นงาน
  • ต่อไป ฉันใช้ คำสั่ง IF เพื่อตรวจสอบว่ามี อยู่ . หรือไม่ ถ้า มีอยู่ มันจะลบ ตัวกรองอัตโนมัติ ขณะที่ฉันตั้งค่า ActiveSheet.AutoFilterMode เป็น เท็จ .

❺ กลับไปที่ เวิร์กชีต . ของคุณ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFfromallWorksheets และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ตอนนี้ คุณจะเห็น  ไอคอนตัวกรองอัตโนมัติทั้งหมดถูกลบ จาก แผ่นงานทั้งหมด ใน สมุดงาน . ของคุณ เช่นเดียวกับภาพด้านล่าง:

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

3. ล้างตัวกรองอัตโนมัติจากคอลัมน์เดียวของตาราง

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ในการทำเช่นนั้น

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

❸ ตอนนี้ คัดลอก 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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • อันดับแรก ฉัน ประกาศตัวแปร 3 ตัว
  • จากนั้นฉันก็แทรก ชื่อตาราง และ ตั้งค่า ชื่อแผ่นงาน .
  • หลังจากนั้น ฉันใช้ ListObjects คุณสมบัติ ทำให้มองเห็นได้ เนื้อหาทั้งหมด ของ โต๊ะ .
  • สุดท้ายนี้ ฉัน ป้อนข้อมูล a ดัชนีคอลัมน์ตาราง โดยใช้ช่องกรองอัตโนมัติ

❺ กลับไปที่ เวิร์กชีต . ของคุณ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFSingleColumnfromTable และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

หลังจากนั้น คุณจะเห็น ตัวกรองอัตโนมัติ ไม่มีอยู่ในคอลัมน์แรก .แล้ว ของโต๊ะของคุณ

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

4. ลบตัวกรองอัตโนมัติออกจากหลายคอลัมน์ของตาราง

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ทำตามขั้นตอนด้านล่างเพื่อล้างตัวกรองอัตโนมัติหากมีอยู่ในหลายคอลัมน์ ใน  ตาราง Excel

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก 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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • อันดับแรก ฉัน ประกาศตัวแปร 3 ตัว
  • จากนั้นฉันก็แทรก ชื่อตาราง และ ตั้งค่า ชื่อแผ่นงาน .
  • หลังจากนั้น ฉันใช้ ListObjects คุณสมบัติ ทำให้มองเห็นได้ เนื้อหาทั้งหมด ของ โต๊ะ .
  • สุดท้ายนี้ ฉัน ป้อนข้อมูล สองดัชนีคอลัมน์ตาราง โดยใช้ช่องกรองอัตโนมัติ

❺ ตอนนี้ กลับไปที่ แผ่นงาน แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร DeleteAFMultiColumnsfromTable และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

หลังจากรันโค้ด คุณจะเห็น ตัวกรองอัตโนมัติ ถูกลบ จากหลายคอลัมน์

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

อ่านเพิ่มเติม: [แก้ไข]:วิธีการกรองอัตโนมัติของคลาสช่วงล้มเหลว (5 โซลูชัน)

5. ล้างตัวกรองอัตโนมัติจากทั้งตารางโดยใช้ Excel VBA

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก 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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

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

❺ กลับไปที่ เวิร์กชีต มีโต๊ะแล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFfromEntireTable และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ตอนนี้ ตัวกรองอัตโนมัติ จะ ลบ จากทั้งตาราง เช่นเดียวกับภาพด้านล่าง:

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

6. ลบตัวกรองอัตโนมัติจากแผ่นงานที่มีการป้องกันด้วยรหัสผ่าน หากมี

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

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

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

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก 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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • อันดับแรก ฉัน ประกาศตัวแปร และป้อนรหัสผ่าน
  • จากนั้นใน ActiveSheet ฉันกำหนด รหัสผ่านผู้ใช้ ไปที่ ยกเลิกการป้องกันรหัสผ่าน
  • ใช้ ShowAllData คุณสมบัติเพื่อยกเลิกการซ่อนทุกอย่าง
  • จากนั้นฉันก็กำหนดให้ จริง ไปยัง เนื้อหา , อนุญาตการกรอง และ ส่วนต่อประสานผู้ใช้เท่านั้น เพื่อ ป้องกัน ทั้งหมด

❺ กลับไปที่ เวิร์กชีตที่มีการป้องกันด้วยรหัสผ่าน แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFwithPass และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

หลังจากนั้น ตัวกรองอัตโนมัติ จะ ลบ และบันทึกทั้งหมดจะ มองเห็นได้ แบบนี้:

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

7. การใช้ VBA เพื่อลบตัวกรองอัตโนมัติออกจากแผ่นงานที่มีการป้องกันโดยไม่ต้องใช้รหัสผ่าน

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

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

❶ ก่อนอื่น กด ALT + F11 เพื่อเปิด ตัวแก้ไข VBA

❷ จากนั้นไปที่ แทรก >> โมดูล .

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

คัดลอก VBA ต่อไปนี้ รหัส.

Sub RemoveAFwithoutPass()

With ActiveSheet
    .Unprotect
    .ShowAllData
    .Protect _
        Contents:=True, _
        AllowFiltering:=True, _
        UserInterfaceOnly:=True
End With

End Sub

วาง และ บันทึก รหัสใน ตัวแก้ไข VBA

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

รายละเอียดของโค้ด

  • ก่อนอื่น ฉันใช้ ด้วย คำสั่งใน ActiveSheet และใช้ Unprotect คุณสมบัติ ปลดล็อก
  • จากนั้น ฉันใช้ ShowAllData คุณสมบัติเพื่อยกเลิกการซ่อนทุกอย่าง
  • จากนั้นฉันก็กำหนดให้ จริง ไปยัง เนื้อหา , อนุญาตการกรอง และ ส่วนต่อประสานผู้ใช้เท่านั้น เพื่อยกเลิกการป้องกันทั้งหมด

❺ กลับไปที่ เวิร์กชีตที่ใช้งานอยู่ แล้วกด ALT + F11 เพื่อเปิด มาโคร กล่องโต้ตอบ

❻ เลือก มาโคร RemoveAFwithoutPass และกด วิ่ง ปุ่ม.

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

สุดท้าย ตัวกรองอัตโนมัติ จะ เคลียร์ และข้อมูลทั้งหมดจะมองเห็นได้ แบบนี้:

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

ภาคปฏิบัติ

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

Excel VBA:ลบตัวกรองอัตโนมัติหากมีอยู่ (7 ตัวอย่าง)

บทสรุป

โดยสรุป เราได้พูดคุยกัน 7 วิธีการ ลบตัวกรองอัตโนมัติหากมีอยู่ โดยใช้ VBA ใน Excel ขอแนะนำให้คุณดาวน์โหลดแบบฝึกหัดที่แนบมาพร้อมกับบทความนี้และฝึกฝนวิธีการทั้งหมดด้วย และอย่าลังเลที่จะถามคำถามใด ๆ ในส่วนความคิดเห็นด้านล่าง เราจะพยายามตอบคำถามที่เกี่ยวข้องทั้งหมดโดยเร็วที่สุด และโปรดเยี่ยมชมเว็บไซต์ของเรา Exceldemy เพื่อสำรวจเพิ่มเติม

บทความที่เกี่ยวข้อง

  • VBA เป็นตัวกรองอัตโนมัติที่มีหลายเกณฑ์ในฟิลด์เดียวกันใน Excel (4 วิธี)
  • วิธีการกรองค่าอัตโนมัติไม่เท่ากับค่าที่แน่นอนด้วย VBA ใน Excel
  • ตัวกรองอัตโนมัติ VBA:เรียงลำดับจากน้อยไปหามาก (3 วิธี)
  • วิธีการกรองอัตโนมัติและคัดลอกแถวที่มองเห็นได้ด้วย Excel VBA