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 لحذف الصفوف بناءً على قيمة الخلية

لنفترض أن لدينا مجموعة البيانات التالية التي تحتوي على معلومات حول لاعبي كرة السلة المختلفين:

لنفترض أننا نريد إزالة كل صف من مجموعة البيانات حيث يساوي عمود “المؤتمر” “الشرق”.

يمكننا إنشاء الماكرو التالي للقيام بذلك:

 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

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

لاحظ أنه تم حذف كافة الصفوف التي كانت القيمة الموجودة في عمود المؤتمر فيها “الشرق”.

ملاحظة : السطر Application.DisplayAlerts=False يخبر VBA بعدم عرض عملية إزالة الخطوط المرئية، مما يؤدي إلى تسريع العملية.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

فبا: كيفية تطبيق التنسيق الشرطي على الخلايا
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية حساب الخلايا التي تحتوي على نص معين

Add a Comment

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