فيسوال بيسيك لغة التجميع (فبا) هي لغة البرمجة التي غالبا ما تستخدم لأتمتة المهام في ميكروسوفت إكسيل. أثناء تطوير وحدات الماكرو والوظائف على فبا ، قد يواجه المبرمجون الخطأ" إعلان مكرر في النطاق الحالي " ، مما يدل على وجود إعلانات مكررة للمتغيرات أو الإجراءات في النطاق الحالي. يمكن أن يتسبب هذا الخطأ في سلوك برنامج غير متوقع ويؤدي إلى نتائج غير صحيحة.
أحد الأسباب الأكثر شيوعا لخطأ "الإعلان المكرر في النطاق الحالي" هو إعلان متغير غير صحيح. عندما يتم الإعلان عن متغير مرتين في نفس النطاق ، فبا لا يمكن تحديد المتغير الذي لاستخدام ، الأمر الذي يؤدي إلى خطأ. قد يكون سبب هذا الخطأ هو الازدواجية العرضية لإعلان المتغير أو الكتابة غير المرغوب فيها لمتغير موجود.
سبب آخر لخطأ "الإعلان المكرر في النطاق الحالي" هو وجود إجراءات أو وظائف مكررة في النطاق الحالي. إذا كان هناك إجراءان أو أكثر لهما نفس الاسم في نفس النطاق ، فلن يتمكن فبا من تحديد الإجراء الذي يجب الاتصال به ، مما يؤدي إلى حدوث خطأ. يمكن أن يحدث هذا إذا قام المبرمج عن غير قصد بإنشاء إجراءين بنفس الاسم أو بسبب إعادة تسمية غير مرغوب فيها لإجراء موجود.
تجنب التصريح عن المتغيرات والإجراءات التي تحمل نفس الأسماء في نفس النطاق لتجنب الخطأ" الإعلان المكرر في النطاق الحالي".
- أسباب الخطأ
- الاستخدام غير الصحيح للمتغيرات
- ازدواجية الإعلانات في المدونة
- طرق لإصلاح الخطأ
أسباب الخطأ
غالبا ما يحدث خطأ "الإعلان المكرر في النطاق الحالي" في فبا عند البرمجة في تطبيقات ميكروسوفت أوفيس مثل إكسيل أو ورد أو أسيس. يشير هذا الخطأ إلى أن رمز البرنامج يحتوي على تعريفين أو أكثر بنفس الاسم في نفس النطاق.
إذا اكتشف مترجم فبا مثل هذا الموقف ، فإنه يعتبر أن المبرمج قد ارتكب خطأ ويصدر رسالة خطأ لمنع المشاكل المحتملة المتعلقة بإعلانات متعددة من المتغيرات أو الإجراءات.
قد يحدث الخطأ لعدة أسباب:
- إعلان متغير مكرر: يحدث هذا الخطأ غالبا عندما يكون هناك سطرين أو أكثر في البرنامج يعلنان نفس المتغير. على سبيل المثال ، إذا كان رمز يحتوي على خطوط "ديم س كما صحيح" و "ديم س كما مزدوجة" ، فإن مترجم فبا إرجاع خطأ لأن المتغير "س" أعلن مرتين.
- ازدواجية إعلان الإجراء: يحدث هذا الخطأ إذا كان سطرين أو أكثر في البرنامج لهما نفس الإجراء أو اسم الوظيفة. على سبيل المثال ، إذا كان رمز يحتوي على خطوط "الفرعية ميسوب()" و "وظيفة ميسوب ()" ، ثم مترجم فبا سيعود خطأ ، منذ الإجراء "ميسوب" أعلن مرتين.
- الاستخدام غير السليم لوحدات المكتبة أو الكائنات: إذا كان البرنامج يستخدم وحدات المكتبة أو الكائنات مثل" ورقة العمل "أو" المدى " ، ومحاولة لإعلان متغير بنفس الاسم ، فإن مترجم فبا أيضا إرجاع خطأ.
لإصلاح الخطأ "الإعلان المكرر في النطاق الحالي" ، اتبع الخطوات التالية:
- تحقق من رمز البرنامج وابحث عن جميع الأسطر التي تعلن عن المتغيرات أو الإجراءات التي تحمل الاسم نفسه.
- حذف أو تعديل سلاسل مكررة بحيث يكون كل متغير أو اسم الإجراء فريدا في النطاق الحالي.
- تحقق من استخدام وحدات المكتبة أو الكائنات وتأكد من عدم وجود تعارض بين أسماء المتغيرات أو الإجراءات مع الأسماء المحجوزة لهذه الوحدات أو الكائنات.
سيساعد إصلاح خطأ" الإعلان المكرر في النطاق الحالي " في تجنب المشاكل المحتملة مع البرنامج وتحسين أداء وموثوقية الكود. يوصى بالتحقق بعناية من الكود بحثا عن الإعلانات المكررة واتباع قواعد تسمية المتغيرات والإجراءات بدقة لتجنب الأخطاء المماثلة في المستقبل.
الاستخدام غير الصحيح للمتغيرات
الاستخدام غير الصحيح للمتغيرات هو أحد الأسباب الشائعة لخطأ "الإعلان المكرر في النطاق الحالي" في فبا. يحدث الخطأ عندما يتم الإعلان عن نفس المتغير مرتين أو أكثر في نفس النطاق.
قد تنشأ المشكلة عندما يكون هناك كتلتان أو أكثر من التعليمات البرمجية يتم فيها الإعلان عن المتغيرات التي تحمل الاسم نفسه. قد يكون هذا بسبب عدم اهتمام المبرمج أو مصادفة عشوائية لأسماء المتغيرات.
لإصلاح خطأ "الإعلان المكرر في النطاق الحالي" ، من المهم استخدام المتغيرات بشكل صحيح ومراقبة نطاقها. وهنا بعض النصائح:
- إعادة تسمية المتغيرات: إذا تم استخدام المتغيرات التي تحمل نفس الأسماء في نفس النطاق ، فيجب إعادة تسميتها لإزالة تعارض الاسم. على سبيل المثال ، يمكنك إضافة بادئة أو لاحقة لأسماء المتغيرات لجعلها فريدة.
- استخدام المتغيرات المحلية: المتغيرات المحلية لها نطاق محدود ، فهي متوفرة فقط داخل كتلة معينة من التعليمات البرمجية. يؤدي استخدام المتغيرات المحلية إلى التخلص من مشكلة تعارض الأسماء في أجزاء مختلفة من الكود.
- إعلان المتغيرات في النطاق المطلوب: إذا كانت المتغيرات متاحة في جميع أنحاء الكود ، فيجب الإعلان عنها على مستوى الوحدة النمطية أو في نطاق الوحدة النمطية. من المهم أن تتذكر أن المتغيرات المعلنة في نطاق الإجراء لن تكون متاحة في الإجراءات الأخرى.
- إزالة الإعلانات المكررة: إذا أعلنت عن غير قصد متغيرا يحمل نفس اسم متغير موجود في نفس النطاق ، فما عليك سوى إزالة الإعلان الزائد.
يرجى ملاحظة أن الاستخدام الصحيح للمتغيرات يساعد على تجنب أخطاء "الإعلان المكرر في النطاق الحالي" ويحسن وضوح الشفرة وقابليتها للقراءة. يوصى دائما بتتبع أسماء المتغيرات وتجنب إعادة استخدام الأسماء الموجودة.
الإعلانات المكررة في التعليمات البرمجية
واحدة من الأخطاء الشائعة التي يمكن أن تحدث عند كتابة التعليمات البرمجية في فبا هو تكرار الإعلانات. هذا يعني أنه يتم الإعلان عن متغير أو إجراء مرتين في نفس النطاق.
إذا كان هناك تعريفان متطابقان للمتغير في الكود ، فلن يتمكن المترجم من تحديد المتغير الذي يجب استخدامه. نتيجة لذلك ، يحدث الخطأ "إعلان مكرر في النطاق الحالي".
يمكن أن تحدث أخطاء تكرار الإعلان لعدة أسباب:
- إعلان متغير مرتين في نفس الإجراء. على سبيل المثال:
خافت س كعدد صحيح- خافت س كعدد صحيح
إعلان متغير بنفس الاسم كمتغير معلن بالفعل في إجراء آخر. على سبيل المثال:
- 'الإجراء 1
- الإجراء الفرعي1()
- خافت س كعدد صحيح
نهاية الفرعية
'الإجراء 2
الإجراء الفرعي2()
- خافت س كما صحيح ' إعلان مكررة
- نهاية الفرعية
- يمكن أن تؤدي أخطاء الإعلان المكررة إلى سلوك برنامج غير متوقع وأخطاء وقت التشغيل. لإصلاح الخطأ "الإعلان المكرر في النطاق الحالي" ، اتبع الخطوات التالية:
- ابحث عن جميع الأماكن في الكود حيث يتم تكرار الإعلان.
اكتشف سبب استخدام إعلان مكرر. احذف متغيرا إضافيا أو أعد تسميته بحيث يختلف اسمه عن المتغيرات الموجودة.
تأكد من أن جميع الإعلانات المتغيرة لها أسماء فريدة ضمن نفس النطاق.