VBA Goal Seek | كيفية استخدام Goal Seek لإيجاد قيمة في Excel VBA؟

Goal Seek في Excel VBA

Goal Seek هي الأداة المتوفرة في Excel VBA والتي تساعدنا في العثور على الرقم المطلوب لتحقيق الهدف المحدد.

على سبيل المثال ، أنت طالب وقد استهدفت متوسط ​​درجة 90٪ من ستة مواد متاحة. اعتبارًا من الآن ، أكملت 5 اختبارات ولم يتبق لك سوى موضوع واحد ، والدرجات المتوقعة من خمسة مواد مكتملة هي 89 و 88 و 91 و 87 و 89 و 90. الآن تريد أن تعرف مقدار ما تحتاج إلى تسجيله في الفحص النهائي لتحقيق متوسط ​​النسبة المئوية المستهدفة الإجمالية البالغة 90٪.

يمكن القيام بذلك باستخدام GOAL SEEK في ورقة عمل Excel وكذلك في ترميز VBA. دعونا نرى كيف يعمل مع VBA.

VBA Goal Seek Syntax

في VBA Goal Seek ، نحتاج إلى تحديد القيمة التي نقوم بتغييرها والوصول إلى النتيجة المستهدفة النهائية ، لذلك قم بتوفير مرجع الخلية باستخدام كائن VBA RANGE ، وبعد ذلك يمكننا الوصول إلى خيار GOAL SEEK.

يوجد أدناه بناء جملة البحث عن الهدف في VBA.

  • Range (): في هذا ، نحتاج إلى توفير مرجع الخلية حيث نحتاج إلى تحقيق القيمة المستهدفة.
  • الهدف: في هذه الحجة ، نحتاج إلى إدخال الهدف الذي نحاول تحقيقه.
  • تغيير الخلية: في هذه الحجة ، نحتاج إلى العرض عن طريق تغيير قيمة الخلية التي نحتاجها لتحقيق الهدف.

أمثلة على برنامج Excel VBA Goal Seek

فيما يلي أمثلة على البحث عن الهدف في Excel VBA.

يمكنك تنزيل قالب Excel من VBA Goal Seek من هنا - نموذج VBA Goal Seek Excel

VBA Goal Seek - المثال رقم 1

لنأخذ مثال متوسط ​​درجات الامتحان فقط. فيما يلي الدرجة المتوقعة من 5 مواد من الاختبار المكتمل.

أولاً ، نحتاج إلى الوصول إلى متوسط ​​الدرجات من المواد الخمسة المكتملة. قم بتطبيق الدالة AVERAGE في الخلية B8.

في هذا المثال ، هدفنا هو 90 ، ستكون الخلية المتغيرة B7 . لذلك سيساعدنا Goal Seek في العثور على النتيجة المستهدفة من الموضوع النهائي لتحقيق المتوسط ​​الإجمالي البالغ 90.

ابدأ الإجراء الفرعي في الوحدة النمطية لفئة VBA.

رمز:

 Sub Goal_Seek_Example1 () End Sub 

نحتاج الآن إلى النتيجة في خلية B8 ، لذا قم بتوفير مرجع النطاق هذا باستخدام كائن RANGE.

رمز:

 Sub Goal_Seek_Example1 () النطاق ("B8") End Sub 

الآن ضع نقطة وأدخل خيار "Goal Seek".

الوسيطة الأولى هي "الهدف" لذلك نحتاج إلى إدخال هدفنا النهائي للوصول إلى النطاق B8. في هذا المثال ، نحاول تحقيق هدف 90.

رمز:

 نطاق Goal_Seek_Example1 الفرعي ("B8"). هدف GoalSeek: = 90 End Sub 

الحجة التالية هي "تغيير الخلية" لذلك نحتاج إلى توفير القيمة الجديدة في أي خلية لتحقيق الهدف.

رمز:

 نطاق Goal_Seek_Example1 () ("B8"). هدف GoalSeek: = 90 ، ChangingCell: = Range ("B7") End Sub 

في هذا المثال ، الخلية المتغيرة لدينا هي الخلية الفرعية 6 ، أي الخلية B7.

حسنًا ، لنقم بتشغيل الكود لمعرفة ما يجب القيام به في الموضوع النهائي لتحقيق متوسط ​​النسبة المئوية الإجمالية البالغ 90.

لذلك ، في المادة النهائية ، يجب تسجيل 95 للحصول على المعدل الإجمالي البالغ 90.

VBA Goal Seek - المثال رقم 2

لقد تعلمنا كيفية تطبيق GOAL SEEK لإيجاد الرقم المطلوب لتحقيق الهدف. سنرى الآن بعض الأمثلة المتقدمة لإيجاد درجة الاختبار النهائي لأكثر من طالب واحد.

فيما يلي الدرجات المتوقعة من 5 مواد بعد الامتحان.

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

رمز:

 Sub Goal_Seek_Example2 () خافت k كنتيجة خافتة طويلة الخلية كتغيير خافت للمدى الخلية كهدف خافت للنطاق كهدف صحيح = 90 لـ k = 2 إلى 5 مجموعة النتيجة = الخلايا (8 ، ك) تعيين الخلية المتغيرة = الخلايا (7 ، ك) النتيجة الهدف. TargetScore ، ChangingCell التالي k End Sub 

سيعمل هذا الرمز على تكرار جميع درجات الطلاب وسيصل إلى درجة الاختبار النهائي المطلوبة لتحقيق المعدل الإجمالي البالغ 90.

لذلك حصلنا على النتيجة النهائية الآن ،

يحتاج الطالب "أ" إلى الحصول على 83 درجة فقط لتأمين النسبة الإجمالية البالغة 90 ويحتاج الطالب "د" إلى الحصول على 93 درجة.

لكن انظر إلى الطالب B & C ، فهم بحاجة إلى الحصول على 104 درجة في الاختبار النهائي وهو أمر غير ممكن على الإطلاق.

مثل هذا باستخدام تحليل GOAL SEEK ، يمكننا العثور على الرقم المطلوب لتحقيق الرقم المستهدف في منتصف المشروع أو العملية.

أشياء للذكرى

  • Goal Seek متاح مع كل من أداة ورقة العمل وكذلك أداة VBA.
  • يجب أن تحتوي الخلية الناتجة دائمًا على صيغة.
  • نحتاج إلى إدخال قيمة الهدف وتغيير مرجع الخلية إلى أداة البحث عن الهدف.

$config[zx-auto] not found$config[zx-overlay] not found