اذهب الي المحتوي
أوفيسنا

ماهو المقصود بـ Option Base 1 في بداية الكود ؟؟


إذهب إلى أفضل إجابة Solved by حمادة باشا,

الردود الموصى بها

اساتذتي الكرام

تعودنا دائما علي وجود كلمة Option Explicit  في بداية الكود
ولكن في بعض الاحيان وجدت بعض الاكواد تبدأ بـ  Option Base 1

ماهو المقصود بـ Option Base 1 في بداية الكود ؟؟

وما هو الفرق بين الاثنين ؟؟

 

جزاكم الله خيرا مقدما

 

رابط هذا التعليق
شارك

  • أفضل إجابة

الأخ الفاضل/ حسام مصطفي

السلام عليكم ورحمة الله وبركاته

Option Explicit

تعني النص صراحة علي أي متغيرتقوم بإدارجه في كود الموديول قبل إستخدامه

فإن لم تفعل ذلك سيولد الكود رسالة خطأ - مثال :

For i = 1 To 10
x = x + 1
Next
MsgBox x

الكود السابق سيظهر رسالة بالرقم 10 وهي قيمة X

لو وضعنا قبله في أول سطر بالموديول Option Explicit

ستظهر لنا رسالة خطا ولن نعرف قيمة x - ولحل الأمر لابد من إدارج السطر التالي قبل الكود السابق

Dim i, x As Integer

من فوائد Option Explicit عدم الخلط بين المتغيرات وبعضها ( الرقمي - التاريخ - إلخ ) + كذا تفعيل خاصية Scope أي نطاق عمل المتغير داخل ال Sub ولا يتعداها

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

فرعية غير مستخدمة ستولد خطأ حال إستخدامها .

 

Option Base 1

تنص علي أن عد المصفوفة Array يبدأ من الرقم 1 وليس صفر

الإعداد الأولي Default هو أن يبدأ العد من الرقم صفر - مثال :

Dim hospital(3) As Integer
Dim doctors As Integer
doctors = hospital(0)
Dim nurses As Integer
nurses = hospital(1)
Dim patients As Integer
patients = hospital(2)
MsgBox "Doctors in Hospital: " & doctors
MsgBox "Nurses in Hospital: " & nurses
MsgBox "Patients in Hospital: " & patients

الكود السابق سيجلب عدد الأطباء والممرضات والمرضي في المستشفي ( القيم = صفر في المثال )

لو وضعنا في أول سطر بالموديول Option Base 1 - أي إبدأ العد من الرقم 1

وأعدنا تنفيذ المثال سيتولد خطأ "Subscript out of range" لأن سطر الأطباء ( رقم صفر في المصفوفة ) أصبح غير معروف لدي البرنامج .

أرجو أنه قد أتضحت الصورة - تقبل تحياتي

رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information