(21-02-19, 03:00 PM)sniperjawadino كتب : مرحبا أخي elgokr
نتيجة السطر الأول هي خطأ برمجي
La conversion de la chaîne "hh" en type 'Double' n'est pas valide.
أريد من البرنامج أن يضهر لي الخطأ ثم يكمل النتائج الأخرى
جميل هنا تكون الصورة واضحة لما تقصده
فى البداية انت هنا يتقوم بالغاء كود Try
ليصبح الحدث يحتوى على التالى
كود :
MsgBox("hh" + 2)
MsgBox(1 + 2)
MsgBox(2 + 2)
الان لدينا خطاء فى الرسالة الاولى بسبب جمع رقم مع نص
ولتجنب الامر فالك التالى اذا كان الامر من الجمع ثابت غير متغير فيمكنك جعل جود الحدث بهذا الشكل
كود :
On Error GoTo VNext
MsgBox("hh" + 2)
VNext:
MsgBox(1 + 2)
MsgBox(2 + 2)
طيب الكود غير ثابت ولست تعلم اذا كان اذا كان الخطاء يظهر بالرسالة الاولى او الثانية او اذا كانت فى الاخيرة
فهنا ستجعل كود الحدث بهذا الشكل حتى يتعامل مع جميع الاسطر
كود :
On Error Resume Next
MsgBox("hh" + 2)
MsgBox(1 + 2)
MsgBox(2 + 2)
وبكده تكون تجنبت جميع الاخطاء التى قد تظهر ...
طيب ماذا تعنى الكود الاول
الكود الاول بيقول اذا كان يوجد خطاء فى اى سطر من الكود ابداء بالذهاب الى سطر التى يحتوى على كلمة VNext
طيب لنقول ان المشكلة فى الخطاء فى الرسالة رقم 2 وليس الاولى
بكده سيكون البرنامج يعيد ام الزهاب الى نفس السطر الذى يحتوى على خطاء ولم يحل المشكلة بل جعل من المشكلة اكثر من مشكلة
طيب الكود الثاني ماذا يعنى
الكود الثاني هو نفس الكود الاول ولكن فكرته بسيطة وهى
عند وجود خطاء عند سطر محدد تخطي السطر واذهب للسطر التالى
والسطر هنا تعنى بداية فتحة الكود الى نهايته مثل For وخلافه التى تعتمد لعى اكثر من سطر
اتمنى ان تكون الفكرة وضحت معك وان الامور اصبح بسيطة معك
وان الطريقة التى ذكرتها تناسبك لما تريد ان تفعله
تحياتى لك
وتمنياتى لك التوفيق