Vba: วิธีลบแถวตามค่าของเซลล์


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อลบแถวตามค่าของเซลล์:

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

แมโครนี้จะลบแถวทั้งหมดในช่วง A1:C10 โดยที่ค่าของคอลัมน์ B เท่ากับ “Is”

แมโครนี้ใช้ขั้นตอนต่อไปนี้:

  • ใช้ตัวกรองกับ A1:C10 เพื่อแสดงเฉพาะแถวที่มีค่าในคอลัมน์ B คือ “Is”
  • จากนั้นลบเซลล์ที่มองเห็นทั้งหมด
  • จากนั้นจึงถอดตัวกรองออก

ซึ่งมีผลกับการลบแถวทั้งหมดในช่วง A1:C10 โดยที่ค่าในคอลัมน์ B เท่ากับ “Is”

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ใช้ VBA เพื่อลบแถวตามค่าของเซลล์

สมมติว่าเรามีชุดข้อมูลต่อไปนี้ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

สมมติว่าเราต้องการลบทุกแถวออกจากชุดข้อมูลที่คอลัมน์ Conference เท่ากับ “East”

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดทราบว่าแถวทั้งหมดที่มีค่าในคอลัมน์ Conference เป็น “East” ได้ถูกลบไปแล้ว

หมายเหตุ : บรรทัด Application.DisplayAlerts=False จะบอก VBA ว่าอย่าแสดงกระบวนการลบเส้นที่มองเห็นได้ ซึ่งจะทำให้กระบวนการเร็วขึ้น

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีใช้การจัดรูปแบบตามเงื่อนไขกับเซลล์
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีนับเซลล์ด้วยข้อความเฉพาะ

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *