أنواع الأخطاء في VBA for Excel - قائمة وأمثلة

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

أنواع الأخطاء في VBA for Excel

يمكن أن يكون اختبار وتعقب أنواع مختلفة من الأخطاء في التعليمات البرمجية لـ VBA مستهلكًا للوقت ومحبًا. ليس من غير المألوف أن تسمع المبرمجين البرمجة البرمجة هي عملية كتابة التعليمات للكمبيوتر ليقوم بها. إنها تشبه وصفة للبشر. تحتوي الوصفة على قائمة بالإجراءات التي تشير إلى أن أكثر من 30٪ من وقتهم يقضون في الاختبار.

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

أنواع أخطاء VBA

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

1. أخطاء في بناء الجملة - سطر معين من التعليمات البرمجية غير مكتوب بشكل صحيح

2. تجميع الأخطاء - المشكلات التي تحدث عند تجميع سطور التعليمات البرمجية ، على الرغم من أن الأسطر الفردية من التعليمات البرمجية تبدو منطقية

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

ما هي أخطاء بناء الجملة؟

أخطاء بناء الجملة هي طريقة VBA لإخبارك ما إذا كانت التعليمات البرمجية الخاصة بك منطقية ، على أبسط المستويات. يمكننا إجراء مقارنة بسيطة لقواعد كتابة جملة باللغة الإنجليزية:

  • و الموضوع هو مطلوب.
  • A الفعل هو مطلوب.
  • A العاصمة مطلوب إلكتروني في البداية.
  • علامات الترقيم مطلوبة في النهاية.
  • الأشياء والصفات والميزات النحوية الأخرى اختيارية.

وجدت Jane 18 خطأ في كود VBA الخاص بها .

بطريقة مماثلة ، يفرض VBA قواعد معينة على ما هو مطلوب في مواقف معينة. على سبيل المثال ، عند بدء جملة IF شرطية أساسية في التعليمات البرمجية الخاصة بك ، يجب عليك نسخ قواعد بناء الجملة التالية للسطر الأول من عبارة IF ؛

  • يجب أن تبدأ بـ If
  • يجب أن يكون التالي اختبارًا منطقيًا ، مثل x> 10
  • أخيرًا ، يجب أن ينتهي بالكلمة إذن

إذا كان NumberErrors> 20 ثم

إذا خرقت قواعد اللغة الإنجليزية أو VBA أعلاه ، فإن قواعد اللغة (الإنجليزية) أو النحو (VBA) تعتبر غير صحيحة.

كيفية التعرف على خطأ نحوي

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

خطأ أساسي في بناء الجملة:

بناء الجملة الأساسي erro

مربع رسالة خطأ في بناء الجملة:

مربع رسالة خطأ في بناء الجملة

للتأكد من حدوث عمليات التحقق أثناء الكتابة ، قم بتمكين "التحقق من بناء الجملة تلقائيًا" في قائمة الخيارات.

تدقيق آلي في بناء الجملة

كيفية حل أخطاء بناء الجملة

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

ما هي أخطاء الترجمة؟

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

كيفية التعرف على خطأ الترجمة

عند تشغيل التعليمات البرمجية لـ VBA ، سيتم عرض أخطاء الترجمة في مربع حوار VBA وفقًا للأمثلة أدناه.

بدلاً من ذلك ، إذا كان مشروعك طويلًا أو معقدًا ويتضمن إجراءات متعددة ، فقد يكون من المفيد تجميع التعليمات البرمجية الخاصة بك قبل تشغيلها. يمنع المواقف التي يعمل فيها نصف التعليمات البرمجية الخاصة بك بنجاح ثم ينبثق خطأ. يمكنك تجميع التعليمات البرمجية لـ VBA بالنقر فوق قائمة التصحيح → تجميع مشروع VBA.

مثال 1

خطأ في التحويل البرمجي لجزء "End if" مفقود من جملة IF. كل سطر فردي في الكود صحيح ، لكن معًا ، لا يمثلان عبارة IF كاملة.

خطأ في التجميع - مثال 1

مثال 2

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

خطأ في التجميع - مثال 2

مثال 3

أخطاء الترجمة شائعة عند استخدام Option Explicit وتحدث عندما لا يتم تعريف المتغير بشكل صريح. مع تنشيط Option Explicit ، يلزم وجود عبارة Dim للإعلان عن جميع المتغيرات قبل استخدامها في التعليمات البرمجية الخاصة بك.

خطأ في التجميع - مثال 3

كيفية حل أخطاء الترجمة

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

إذا لم يكن من الواضح لك على الفور سبب المشكلة من رسالة الخطأ ، فحاول استخدام مركز مساعدة Microsoft للحصول على فكرة عن كيفية كتابة البيان أو الوظيفة بالضبط. فيما يلي مثال على رسالة الخطأ "Block if without end if" على موقع Microsoft على الويب.

كتلة إذا بلا نهاية إذا

ما هي أخطاء وقت التشغيل؟

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

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

غالبًا ما تحدث أخطاء وقت التشغيل بسبب البيانات غير المتوقعة التي يتم تمريرها إلى رمز VBA ، وعدم تطابق أنواع البيانات ، والقسمة على الأصفار غير المتوقعة ، وعدم توفر نطاقات الخلايا المحددة. تعد أخطاء وقت التشغيل أيضًا الأكثر تنوعًا وتعقيدًا لتعقبها وإصلاحها.

كيفية تحديد أخطاء وقت التشغيل

VBA Debug VBA: How to Debug Code عند كتابة التعليمات البرمجية لـ VBA وتشغيلها ، من المهم أن يتعلم المستخدم كيفية تصحيح أخطاء التعليمات البرمجية. يتوقع مستخدم Excel أن تبرز وظيفة الكود رمز المشكلة باللون الأصفر وتعطينا دليلًا صغيرًا على سبب المشكلة.

مثال 1

بينما يقسم الكود أدناه رقمًا واحدًا على الآخر ، هناك بعض الحالات التي لا يكون فيها ذلك ممكنًا. على سبيل المثال ، إذا كانت الخلية A1 = 2 والخلية A2 = 0 ، فلا يمكن القسمة على صفر. يتضمن مربع خطأ وقت التشغيل زر التصحيح ، والذي يبرز رمز المشكلة.

خطأ وقت التشغيل - مثال 1

أخطاء وقت التشغيل - المثال 1 أ

مثال 2

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

خطأ وقت التشغيل - مثال 2

بمجرد الضغط على Debug ، يسلط VBA الضوء على سطر الكود الذي يسبب المشكلة. الآن يعود الأمر إلي لاستخدام رسالة "Subscript خارج النطاق" لمعرفة الخطأ الذي يحدث. يعني الخطأ خارج النطاق عمومًا أن الكود الخاص بك جيد من حيث المبدأ ، ولكن لا يمكن العثور على العنصر المحدد الذي تبحث عنه. الأكثر شيوعًا ، سيحدث ذلك عند الرجوع إلى الخلايا أو النطاقات في Excel ، بالإضافة إلى المصفوفات في التعليمات البرمجية لـ VBA.

خطأ وقت التشغيل - المثال 2 أ

للتأكد من تمكين وظيفة التصحيح ، في قائمة الخيارات> عام> تعويض الخطأ ، يجب أن تكون الحالة الافتراضية هي "كسر الأخطاء التي لم تتم معالجتها". اترك الخيار محددًا.

كسر الأخطاء التي لم يتم معالجتها

كيفية حل أخطاء وقت التشغيل

نظرًا لأن أخطاء وقت التشغيل متنوعة ومعقدة بطبيعتها ، فإن الحلول متنوعة أيضًا. الطريقتان العامتان لتقليل أخطاء وقت التشغيل هما:

محاصرة الخطأ

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

مثال 1

هنا ، يفرض سطر "On Error Resume Next" على الكود الاستمرار ، حتى إذا تم اكتشاف خطأ. ثم نستخدم اختبار If Err> 0 لإنشاء رسالة تحذير ، فقط في حالة وجود الخطأ. يعمل الخيار "On Error Goto 0" على إعادة تعيين VBA إلى حالته الافتراضية.

تعويض الأخطاء - مثال 1

مثال 2

هنا ، يقوم الرمز بحساب الدخل في اليوم ، بناءً على الدخل الشهري ، وعدد محدد من الأيام. إذا لم يتم توفير عدد الأيام ، فإننا نتخطى نقطة محددة في الكود الخاص بنا تسمى "NoDaysInMonthProvided:" ، حيث نستخدم متوسط ​​عدد الأيام في الشهر كافتراض أساسي. على الرغم من كونه مبسّطًا ، إلا أنه يوضح بوضوح كيفية اعتراض خطأ والتخطي إلى نقطة مختلفة في التعليمات البرمجية الخاصة بك.

تعويض الأخطاء - مثال 2

امسح تعليمات المستخدم

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

ملخص

هناك ثلاثة أنواع رئيسية من الأخطاء في VBA يمكن أن تؤثر على التعليمات البرمجية الخاصة بك بطرق مختلفة. من المهم تنشيط خيارات اكتشاف الأخطاء في VBA ، مثل مصحح الأخطاء والتحقق التلقائي من بناء الجملة. سوف يساعدونك في تحديد موقع وطبيعة الأخطاء.

المزيد من الموارد

Finance هو المزود الرسمي للشهادة العالمية المعتمدة لمحلل الائتمان والمصرفية (CBCA) ™ CBCA اعتماد محلل الائتمان والائتمان المعتمد (CBCA) ™ هو معيار عالمي لمحللي الائتمان الذي يغطي التمويل والمحاسبة وتحليل الائتمان وتحليل التدفق النقدي ونمذجة العهد وسداد القروض وغير ذلك. برنامج شهادة ، مصمم لمساعدة أي شخص في أن يصبح محلل مالي على مستوى عالمي. لمواصلة تطوير حياتك المهنية ، ستكون الموارد الإضافية أدناه مفيدة:

  • #REF Excel Errors #REF Excel Errors #REF تتسبب أخطاء Excel في حدوث مشكلات كبيرة في جداول البيانات. تعرف على كيفية البحث عن أخطاء #REF وإصلاحها في Excel في هذا البرنامج التعليمي السريع مع أمثلة ولقطات شاشة. # REF! خطأ (يشير "المرجع" إلى المرجع) هي الرسالة التي يعرضها Excel عندما تشير الصيغة إلى خلية لم تعد موجودة ، بسبب حذف الخلايا التي
  • أمثلة Excel VBA أمثلة Excel VBA يسمح Excel VBA للمستخدم بإنشاء وحدات ماكرو تعمل على أتمتة العمليات داخل Excel. سيستخدم هذا الدليل أمثلة Excel VBA لإظهار كيفية تسجيل ماكرو عن طريق إعداد الماكرو ، وكيفية إعلان المتغيرات ، وكيفية الإشارة إلى البيانات.
  • تلميحات حول كتابة VBA في Excel تلميحات لكتابة VBA في Excel فيما يلي تسع نصائح لكتابة VBA في Excel. يقدم VBA for Excel إمكانيات لا حصر لها للحسابات المخصصة والأتمتة.
  • أساليب VBA أساليب VBA طريقة VBA هي جزء من التعليمات البرمجية المرفقة بكائن VBA أو متغير أو مرجع بيانات يخبر Excel بالإجراء المطلوب تنفيذه فيما يتعلق بهذا الكائن. النسخ واللصق والاختيار ما هي إلا بعض الأمثلة على طرق VBA التي يمكن تنفيذها.