كيفية حذف ورقة باستخدام vba؟
لحذف ورقة باستخدام VBA، يجب عليك استخدام أسلوب VBA حذف. تحتاج إلى تحديد الورقة التي تريد حذفها ثم استخدام هذه الطريقة. لنفترض أنك إذا كنت تريد حذف “الورقة 1″، فعليك أن تذكر الورقة 1 ثم تكتب نقطة (.) وفي النهاية اكتب “حذف”.
في هذا البرنامج التعليمي، سنرى طرقًا مختلفة يمكنك استخدامها لحذف ورقة باستخدام كود VBA. تأكد من وجود علامة تبويب المطور على الشريط حيث يمكنك الوصول إلى محرر القاعدة المرئية .
حذف ورقة باستخدام اسمها
كل ورقة لها اسم ويمكنك استخدام رمز الكتابة لحذف ورقة باستخدام الاسم. لذا، لنفترض أنك تريد حذف ورقة عمل “البيانات”، سيكون الرمز:
Sub vba_delete_sheet() Sheets("Data").Delete End Sub
حذف ورقة دون سابق إنذار (مطالبة)
عندما تقوم بحذف ورقة عمل، يعرض Excel رسالة لتأكيد ما إذا كنت تريد حذفها أو إلغائها. وعندما تستخدم كود VBA، في هذه الحالة سيقوم Excel بذلك أيضًا.
لحل هذه المشكلة، يمكنك تعطيل تحديث الشاشة لحذف ورقة ثم تمكينها.
Application.DisplayAlerts = False Sheets("Data").Delete Application.DisplayAlerts = True
اسم ورقة الخلية
لنفترض الآن أنك تريد استخدام قيمة خلية لاستخدام اسم ورقة العمل. في هذه الحالة، تحتاج إلى استخدام كائن نطاق VBA للقيام بذلك.
حذف الورقة باستخدام رقم الورقة
صحيح. يمكنك استخدام رقم الورقة لحذفها. هنا هو الرمز.
Sub vba_delete_sheet() Sheets(1).Delete End Sub
حذف الورقة النشطة
لحذف الورقة النشطة، يمكنك استخدام كائن “ActiveSheet” بدلاً من استخدام اسم الورقة لتحديد الورقة.
ActiveSheet.Delete
كما قلت، يؤدي هذا إلى حذف الورقة النشطة ويمكنك تنشيطها قبل حذفها. ولكن من الواضح أنك لا تحتاج إلى القيام بذلك لأنه يمكنك الرجوع إلى ورقة وحذفها كما رأينا في بداية هذا البرنامج التعليمي.
تحقق من وجود الورقة قبل حذفها
يمكنك أيضًا كتابة التعليمات البرمجية بطريقة تمكنها من التحقق مما إذا كانت الورقة موجودة أم لا ثم حذفها.
Sub check_sheet_delete() Dim ws As Worksheet Dim mySheet As Variant mySheet = InputBox("enter sheet name") Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
في هذا الرمز لديك “لكل” للتكرار من خلال كافة أوراق العمل. وبعد ذلك، بيان IF لحذف الورقة إذا كان اسمها يساوي الاسم الذي كتبته في مربع الإدخال.
حذف كافة أوراق العمل من المصنف
أنا متأكد من أن هذا السؤال يدور في ذهنك، ولكن أخشى أنه من المستحيل حذف جميع أوراق العمل الموجودة في المصنف. لديك ورقة عمل واحدة على الأقل متبقية.
لكني وجدت حلاً لهذه المشكلة. يمكنك إدراج ورقة فارغة جديدة، ثم حذف كافة الأوراق الموجودة بالفعل.
إليك الكود: يضيف هذا الكود ورقة جديدة ويحذف جميع الأوراق الأخرى.
Sub vba_delete_all_worksheets() Dim ws As Worksheet Dim mySheet As String mySheet = "BlankSheet-" & Format(Now, "SS") Sheets.Add.Name = mySheet Application.DisplayAlerts = False For Each ws In ThisWorkbook.Worksheets If ws.Name <> mySheet Then ws.Delete End If Next ws Application.DisplayAlerts = True End Sub
الدروس ذات الصلة
- مسح ورقة كاملة باستخدام VBA في Excel
- انسخ ورقة وانقلها في Excel باستخدام VBA
- COUNT من الأوراق باستخدام VBA في Excel
- إخفاء وإظهار ورقة باستخدام VBA في Excel
- حماية وإلغاء حماية ورقة باستخدام VBA في Excel