วิธีการลบบรรทัดว่างใน vba (พร้อมตัวอย่าง)


คุณสามารถใช้วิธีการต่อไปนี้ใน VBA เพื่อลบบรรทัดว่าง:

วิธีที่ 1: ลบแถวว่างในช่วงที่ระบุ

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

มาโครนี้จะลบแถวว่างทั้งหมดออกจากช่วง A1:B10 ของ Sheet1

วิธีที่ 2: ลบแถวว่างในทั้งแผ่นงาน

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

มาโครนี้จะลบแถวว่างทั้งหมดออกจากแผ่นงานที่ใช้งานอยู่ทั้งหมด

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

ตัวอย่างที่ 1: ลบบรรทัดว่างในช่วงที่ระบุ

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

เราสามารถสร้างแมโครต่อไปนี้เพื่อลบบรรทัดว่างทั้งหมดออกจากช่วง A1:B10 บนชีตนี้:

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

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

โปรดทราบว่าบรรทัดว่างทั้งหมดได้ถูกลบออกจากช่วงที่เราระบุแล้ว

ตัวอย่างที่ 2: ลบแถวว่างในแผ่นงานทั้งหมด

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

เราสามารถสร้างมาโครต่อไปนี้เพื่อลบบรรทัดว่างทั้งหมดออกจากแผ่นงานทั้งหมด:

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

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

โปรดทราบว่าบรรทัดว่างทั้งหมดได้ถูกลบออกจากทั้งแผ่นงานแล้ว

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

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

VBA: วิธีลบแถวตามค่าของเซลล์
VBA: วิธีลบแผ่นงานหากชื่อมีข้อความเฉพาะ
VBA: วิธีลบไฟล์

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

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