Vba: احذف الورقة إذا كان الاسم يحتوي على نص محدد
يمكنك استخدام بناء الجملة التالي في VBA لحذف كل ورقة في مصنف Excel الذي يحتوي على نص محدد:
SubDeleteSheets ()
Dim TextToFind As String
Dim TextWildcard As String
Dim Ws As Worksheet
Dim i As Integer
'prompt user for text to search for in sheet names
TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
ThisWorkbook.ActiveSheet.Name, , , , , 2)
TextWildcard = " * " & TextToFind & " * "
Application.DisplayAlerts = False
'loop through sheets and delete each sheet that contains text
i = 0
For Each Ws In ThisWorkbook.Sheets
If Ws.Name Like TextWildcard Then
Ws.Delete
i = i + 1
End If
Next Ws
Application.DisplayAlerts = True
End Sub
عند تشغيل هذا الماكرو بالتحديد، سيظهر مربع إدخال حيث يمكنك إدخال سلسلة نصية محددة.
بمجرد الضغط على Enter، سيتم حذف كل ورقة في مصنف Excel تحتوي على هذا النص المحدد تلقائيًا.
ملاحظة : السطر Application.DisplayAlerts=False يخبر VBA بعدم عرض عملية حذف الأوراق، مما يؤدي إلى تسريع تنفيذها.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: استخدم VBA لحذف الأوراق التي تحتوي على نص محدد
لنفترض أن لدينا مصنف Excel التالي الذي يحتوي على أربع أوراق:
لنفترض الآن أننا نريد حذف كل ورقة تحتوي على كلمة “Team” في اسم الورقة.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubDeleteSheets ()
Dim TextToFind As String
Dim TextWildcard As String
Dim Ws As Worksheet
Dim i As Integer
'prompt user for text to search for in sheet names
TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
ThisWorkbook.ActiveSheet.Name, , , , , 2)
TextWildcard = " * " & TextToFind & " * "
Application.DisplayAlerts = False
'loop through sheets and delete each sheet that contains text
i = 0
For Each Ws In ThisWorkbook.Sheets
If Ws.Name Like TextWildcard Then
Ws.Delete
i = i + 1
End If
Next Ws
Application.DisplayAlerts = True
End Sub
عندما نقوم بتشغيل هذا الماكرو، يظهر مربع إدخال حيث يمكننا إدخال النص الذي نريد البحث عنه في أسماء الأوراق:
بمجرد كتابة “Team” والضغط على OK ، سيتم حذف أسماء الأوراق التي تحتوي على “Team” في أي مكان في الاسم تلقائيًا:
لاحظ أنه تمت إزالة الورقتين اللتين تحتويان على كلمة “Team” في اسم الورقة.
تم ترك أية أوراق لا تحتوي على “الفريق” دون تغيير.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب عدد الأوراق في المصنف
فبا: كيفية استخراج البيانات من مصنف آخر
VBA: كيفية إدراج أسطر متعددة