أحداث VBA | كيف ومتى يتم استخدام وظيفة DoEvents؟

وظيفة Excel VBA DoEvents

بمساعدة VBA DoEvents ، يمكننا أن نجعل الكود يعمل في الخلفية ويسمح لنا في نفس الوقت بالعمل مع برنامج Excel وبرامج التطبيقات الأخرى أيضًا. لا يسمح لنا DoEvents فقط بالعمل مع البرامج الأخرى ، بل يمكننا أيضًا مقاطعة تشغيل الكود.

تقوم وظيفة DoEvents بتمرير التحكم إلى نظام تشغيل الكمبيوتر الذي نعمل عليه.

كيف تستخدم وظيفة DoEvents؟

مطلوب قدر كبير من كود VBA عندما تكون المتطلبات ضخمة. في هذه الحالات ، يتفوق على التوقف والتوقف لبعض الوقت وحتى في بعض الأحيان يصبح غير مستجيب.

يمكنك تنزيل قالب VBA DoEvents Excel هذا هنا - قالب VBA DoEvents Excel

للحصول على مثال ، انظر إلى الكود أدناه.

رمز:

 DoEvents_Example1 () خافت طويًا بطول i = 1 إلى 100000 نطاق ("A1"). القيمة = i التالي i End Sub 

سيقوم الكود أعلاه بإدخال الأرقام التسلسلية من 1 إلى 100000. وسوف يستغرق الأمر أكثر من دقيقة لتنفيذ المهمة بسهولة. أثناء التنفيذ ، يتوقف برنامج Excel لفترة طويلة لإكمال المهمة. خلال هذا الوقت ، يظهر برنامج Excel الرسالة على أنها "Excel لا يستجيب".

علاوة على ذلك ، لا يمكننا الوصول إلى ورقة العمل التي نعمل عليها. هذا أمر محبط ، فكيف نجعل ورقة عمل Excel متاحة للعمل أثناء تشغيل الكود خلف الشاشة.

يمكن تحقيق ذلك عن طريق إضافة دالة VBA DoEvents .

رمز:

 DoEvents_Example1 () خافت طويًا بطول i = 1 إلى 100000 نطاق ("A1"). القيمة = i DoEvents Next i End Sub 

في اللحظة التي نضيف فيها الوظيفة DoEvents في التعليمات البرمجية ، يمكننا الوصول إلى ورقة عمل Excel.

من الأعلى يمكننا أن نرى أن الكود قيد التشغيل ولكن يمكننا الوصول إلى ورقة العمل.

مقاطعة تشغيل التعليمات البرمجية

عندما يتم تشغيل الكود خلف الشاشة ، يمكننا إضافة صفوف وأعمدة وحذفها ، يمكننا إعادة تسمية الورقة ويمكننا القيام بالعديد من الأشياء الأخرى أيضًا. في اللحظة التي نضيف فيها DoEvents ، فإنه يجعل كود vba يعمل بسرعة ويسمح لنا بأن نفهم أن المهمة المذكورة تعمل من تلقاء نفسها.

  • أحد مخاطر وظيفة DoEvents هو عندما نبدل أوراق العمل أو المصنفات ، فإنها تستبدل قيم الورقة النشطة.
  • الخطر الآخر هو ، إذا أدخلنا أي قيمة إلى الخلية ، فسيتوقف تنفيذ الكود ولا يخطرنا بذلك.
ملاحظة : على الرغم من المخاطر المذكورة أعلاه من DoEvents ، إلا أنها لا تزال وظيفة يدوية. يمكننا استخدام DoEvents كجزء من عملية تصحيح الأخطاء عندما نحاول إصلاح أخطاء الشفرة التي كتبناها.

$config[zx-auto] not found$config[zx-overlay] not found