Vba: كيفية التحقق من وجود الورقة (مع مثال)
يمكنك إنشاء الوظيفة التالية في VBA للتحقق من وجود ورقة معينة في مصنف Excel النشط حاليًا:
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
ستقوم هذه الدالة بإرجاع TRUE أو FALSE للإشارة إلى ما إذا كان اسم ورقة معينة موجودًا في مصنف Excel النشط حاليًا أم لا.
لاحظ أن هذه الوظيفة تتحقق ببساطة مما إذا كان رقم فهرس الورقة أكبر من 0.
إذا كانت الورقة موجودة، فسيكون لرقم فهرس الورقة قيمة 1 على الأقل، مما يتسبب في قيام الدالة بإرجاع قيمة TRUE .
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: استخدم VBA للتحقق من وجود الورقة
لنفترض أن لدينا مصنف Excel التالي الذي يحتوي على ثلاث أوراق:
يمكننا إنشاء الوظيفة التالية في VBA للتحقق من وجود اسم ورقة معينة في هذا المصنف:
Function sheetExists(some_sheet As String) As Boolean
On Error Resume Next
sheetExists = (ActiveWorkbook.Sheets(some_sheet).Index > 0)
End Function
يمكننا بعد ذلك كتابة الصيغة التالية في الخلية A1 من الورقة النشطة حاليًا للتحقق من وجود اسم الورقة “الفرق” في هذا المصنف:
=sheetExists("Teams")
توضح لقطة الشاشة التالية كيفية استخدام هذه الصيغة عمليًا:
ترجع الدالة TRUE نظرًا لوجود اسم الورقة هذا في المصنف.
لاحظ أيضًا أن هذه الوظيفة ليست حساسة لحالة الأحرف.
على سبيل المثال، إذا تحققنا من وجود اسم الورقة “teams” فستُرجع الدالة أيضًا TRUE :
ومع ذلك، لنفترض أننا تحققنا من وجود اسم الورقة “المدربين”:
تقوم الدالة بإرجاع FALSE لأن اسم الورقة هذا غير موجود في المصنف.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب عدد الأوراق في المصنف
فبا: كيفية استخراج البيانات من مصنف آخر
VBA: كيفية إدراج أسطر متعددة