كيفية إصلاح خطأ 'Subscript Out of Range' في Visual Basic for Applications؟



جرب أداة القضاء على المشاكل

Visual Basic for Applications (VBA) هو تطبيق للغة البرمجة Visual Basic التي طورتها Microsoft. يمكن استخدام VBA لتمكين UDFs وأتمتة المهام وللوصول إلى WinAPI من خلال مكتبات DLL. ومع ذلك ، في الآونة الأخيرة ، ظهرت الكثير من التقارير حيث يتعذر على المستخدمين تنفيذ أوامر معينة و ' منخفض خارج النطاق ، خطأ 9 'تنبثق أثناء محاولتك القيام بذلك.



خط منخفض خارج النطاق



ما الذي يسبب خطأ 'منخفض خارج النطاق' في VBA؟

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



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

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

الحل 1: فحص المصفوفات

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

صفيف في VBA Excel



الحل 2: تحديد عدد العناصر

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

استخدام Dim و ReDim لتحديد عدد العناصر

الحل 3: تغيير البناء

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

استخدام 'لكل ... التالي' بناء

الحل 4: التحقق من Keyname والفهرس

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

استخدام اسم مفتاح صالح

2 دقيقة للقراءة