كائن VBA مطلوب | كيفية إصلاح خطأ الكائن المطلوب في Excel VBA؟

الكائن مطلوب في Excel VBA

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

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

لماذا يحدث خطأ مطلوب كائن؟ (وكيفية اصلاحها؟)

حسنًا ، يتطلب الأمر مثالين أو ثلاثة أمثلة لفهم سبب حدوث هذا الخطأ وكيفية إصلاحه حقًا.

يمكنك تنزيل قالب Excel المطلوب من كائن VBA هنا - قالب Excel المطلوب كائن VBA

للحصول على مثال ، انظر إلى الكود أدناه.

رمز:

 Sub Last_Row () Dim Wb as Workbook Dim Ws as Workbook Dim Ws As Workheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1، 1) MsgBox MyToday End Sub 

اسمحوا لي أن أشرح لك الرمز أعلاه.

لقد أعلنت ثلاثة متغيرات ويشير المتغيران الأولان إلى كائنين "مصنف" و "ورقة عمل". يشير المتغير الثالث إلى نوع البيانات "التاريخ".

عندما يتم تعيين أنواع بيانات "كائن" إلى المتغير ، نحتاج إلى استخدام مفتاح "Set" لتعيين مرجع الكائن إلى المتغير ، لذلك في السطرين التاليين باستخدام الكلمة الأساسية "Set" قمت بتعيين مرجع "ThisWorkbook" إلى المتغير "Wb" لأن هذا المتغير يحمل نوع بيانات الكائن كـ "مصنف" وبالنسبة للمتغير "Ws" قمت بتعيين كائن ورقة العمل الخاص بورقة عمل "البيانات" في هذا المصنف.

 تعيين Wb = ThisWorkbook
 تعيين Ws = ThisWorkbook.Worksheets ("البيانات")
  • في السطر التالي لمتغير نوع البيانات "التاريخ" ، استخدمت أيضًا الكلمة الأساسية "تعيين" لتعيين قيمة قيمة الخلية A1 في هذا المصنف (Wb) وفي ورقة العمل "البيانات" (Ws).
 تعيين MyToday = خلايا Wb.Ws. (1 ، 1)
  • في السطر التالي ، نعرض قيمة القيمة المتغيرة "MyDate" لقيمة الخلية A1 في مربع الرسالة في VBA.
MsgBox MyToday
  • حسنًا ، لنشغل هذا الرمز ونرى ما نحصل عليه نتيجة لذلك.

كما ترى أعلاه ، تظهر رسالة خطأ VBA على أنها "كائن مطلوب" . حسنًا ، حان الوقت لفحص سبب ظهور رسالة الخطأ هذه.

  • في صورة رسالة الخطأ أعلاه في قسم الرمز أثناء إظهار رسالة الخطأ ، تم تمييز جزء الخطأ من الرمز باللون الأزرق.

  • لذا ، يبقى السؤال هو لماذا حصلنا على هذا الخطأ. أول شيء نحتاج إلى رؤيته هو نوع البيانات المتغير هذا. ارجع إلى السطر السابق من التعليمات البرمجية حيث قمنا بتعيين نوع البيانات إلى المتغير "MyDate".

  • لقد قمنا بتعيين نوع البيانات المتغير كـ "تاريخ" ونعود الآن إلى سطر الخطأ الآن.

في هذا السطر ، استخدمنا الكلمة الأساسية "Set" بينما نوع البيانات لدينا ليس نوع البيانات "Object". لذا في اللحظة التي يرى فيها رمز VBA الكلمة الأساسية "Set" يفترض أنه نوع بيانات كائن ويقول إنه يتطلب مرجع كائن.

لذلك ، فإن الحد الأدنى هو "تعيين" الكلمة الأساسية المستخدمة للإشارة فقط إلى متغيرات الكائن مثل ورقة العمل ، مصنف ، إلخ ...

مثال 1

الآن ألق نظرة على الكود أدناه.

رمز:

 نطاق Object_Required_Error () فرعي ("A101"). القيمة = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub 

في الكود أعلاه ، استخدمنا وظيفة ورقة العمل "SUM" للحصول على إجمالي قيم الخلية من A1 إلى A100. عند تشغيل هذا الرمز سنواجه الخطأ أدناه.

وجه الفتاة!! تقول "خطأ وقت التشغيل '424': الكائن مطلوب.

الآن دعونا نلقي نظرة فاحصة على الكود الآن.

بدلاً من استخدام "Application" ، استخدمنا "Application1" عن طريق الخطأ ، لذلك واجه هذا الخطأ "Object Required" في رمز VBA.

إذا تم تمكين كلمة "Option Explicit" ، فسنحصل على الخطأ "Variable Not Defined".

أشياء للذكرى

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

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