كيفية حذف الأسطر الفارغة في vba (مع أمثلة)


يمكنك استخدام الطرق التالية في VBA لإزالة الأسطر الفارغة:

الطريقة الأولى: إزالة الصفوف الفارغة في نطاق معين

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

سيؤدي هذا الماكرو المحدد إلى إزالة كافة الصفوف الفارغة من النطاق A1:B10 الخاص بالورقة1 .

الطريقة الثانية: حذف الصفوف الفارغة في الورقة بأكملها

 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: كيفية حذف ورقة إذا كان الاسم يحتوي على نص محدد
فبا: كيفية حذف الملفات

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *