وی بی اے آبجیکٹ درکار ہے ایکسل وی بی اے میں آبجیکٹ مطلوبہ خرابی کو کیسے ٹھیک کریں؟
ایکسل وی بی اے میں مطلوبہ آبجیکٹ
غلطیاں کوڈنگ زبان کا حصہ اور پارسل ہیں لیکن اصل ذہانت غلطی کو تلاش کرنے اور ان غلطیوں کو ٹھیک کرنے میں مضمر ہے۔ ان غلطیوں کو ٹھیک کرنے کا پہلا قدم یہ معلوم کرنے کی ذہانت ہے کہ غلطیاں کیوں ہو رہی ہیں۔ اگر آپ کو معلوم ہوسکتا ہے کہ وہ غلطیاں کیوں آرہی ہیں تو پھر پسینے کو توڑے بغیر ان غلطیوں کو ٹھیک کرنا ایک بہت ہی آسان کام ہے۔ وی بی اے کوڈنگ میں ایسی ہی ایک غلطی "آبجیکٹ مطلوب" ہے۔
اگر آپ کو متغیر سیکھنے اور ان متغیر کو ڈیٹا کی قسم تفویض کرتے وقت یاد ہے تو ہمارے پاس بھی "آبجیکٹ" ڈیٹا کی اقسام موجود ہیں۔ جب تفویض کردہ آبجیکٹ ڈیٹا کی قسم اور اگر وہ چیز ورکی شیٹ یا ورک بک میں موجود نہیں ہے تو ہم VBA کی غلطی کا پیغام بطور وصول کریں گے۔ "مطلوبہ مقصد". لہذا ، ایک نئے کوڈر کی حیثیت سے ، ان حالات میں گھبرانے کی باتیں کرنا ایک عام بات ہے کیونکہ ابتدائی سطح پر مبتدی شخص اس غلطی کی وجہ نہیں ڈھونڈ سکتا ہے۔
اعتراض میں مطلوبہ خرابی کیوں پیش آتی ہے؟ (اور… اسے کیسے طے کریں؟)
ٹھیک ہے ، واقعی یہ سمجھنے میں دو یا تین مثالوں کی ضرورت ہے کہ یہ غلطی کیوں ہوتی ہے اور اسے کیسے درست کیا جائے۔
آپ یہ VBA آبجیکٹ درکار ایکسل ٹیمپلیٹ ڈاؤن لوڈ کرسکتے ہیں۔ VBA آبجیکٹ درکار ایکسل ٹیمپلیٹمثال کے طور پر نیچے کا کوڈ دیکھیں۔
کوڈ:
سب لاسٹ_رو () ڈیم ڈبلیو بطور ورک بک
میں آپ کے لئے مذکورہ بالا کوڈ کی وضاحت کرتا ہوں۔
میں نے تین متغیرات کا اعلان کیا ہے اور پہلے دو متغیر "ورک بک" اور "ورکشیٹ" آبجیکٹ کا حوالہ دیتے ہیں۔ تیسرا متغیر سے مراد "تاریخ" ڈیٹا کی قسم ہے۔
جب "آبجیکٹ" ڈیٹا کی اقسام کو متغیر پر تفویض کیا جاتا ہے تو ہمیں متغیر کو آبجیکٹ کا حوالہ تفویض کرنے کے لئے لفظ "سیٹ" کلید کا استعمال کرنے کی ضرورت ہوتی ہے ، لہذا اگلی دو لائنوں میں "سیٹ" کی ورڈ کا استعمال کرکے میں نے تفویض کیا ہے "یہ ورک بک" کا متغیر "Wb" کا حوالہ ہے کیونکہ اس متغیر میں آبجیکٹ ڈیٹا ٹائپ کو "ورک بک" کہا جاتا ہے اور متغیر "Ws" کے لئے میں نے اس ورک بک میں "ڈیٹا" ورکشیٹ کی ورک شیٹ آبجیکٹ تفویض کی ہے۔
Wb = اس ورک بک کو سیٹ کریں
Ws = ThisWorkbook.Worksheets ("ڈیٹا") مرتب کریں
- اگلی لائن میں "ڈیٹا" ڈیٹا ٹائپ متغیر کے لئے بھی ، میں نے اس ورک بوک (Wb) میں اور ورک شیٹ "ڈیٹا" (Ws) میں سیل A1 ویلیو کی قیمت تفویض کرنے کے لئے "سیٹ" کی ورڈ استعمال کیا ہے۔
MyToday = Wb.Ws.Cells (1 ، 1) سیٹ کریں
- اگلی لائن میں ، ہم VBA میں میسج باکس میں سیل A1 ویلیو کی متغیر ویلیو "MyDate" دکھا رہے ہیں۔
MsgBox MyToday
- ٹھیک ہے ، چلیں اس کوڈ کو چلائیں اور دیکھیں کہ نتیجہ کے طور پر ہمیں کیا حاصل ہوتا ہے۔
جیسا کہ آپ اوپر دیکھ سکتے ہیں اس میں وی بی اے غلطی کا پیغام ظاہر ہوتا ہے "مطلوبہ مقصد". ٹھیک ہے ، اس وقت کا جائزہ لینے کا کہ ہمیں یہ غلطی کا پیغام کیوں مل رہا ہے۔
- کوڈ سیکشن میں مذکورہ بالا ایرر میسیج امیج میں ایرر میسیج دکھاتے ہوئے اس نے کوڈ کے خامی والے حصے کو نیلے رنگ کے ساتھ اجاگر کیا ہے۔
- تو ، سوال باقی ہے کہ ہمیں یہ غلطی کیوں ہوئی؟ پہلی چیز جو ہمیں دیکھنے کی ضرورت ہے وہ ہے اس مخصوص متغیر ڈیٹا کی قسم۔ کوڈ کی پچھلی لائن پر واپس جائیں جہاں ہم نے ڈیٹا کی قسم متغیر "مائی ڈیٹ" کو تفویض کی ہے۔
- ہم نے متغیر ڈیٹا ٹائپ کو "تاریخ" کے بطور تفویض کیا ہے اور اب دوبارہ غلطی کی لائن پر آجاتے ہیں۔
اس لائن میں ، ہم نے لفظ "سیٹ" کا لفظ استعمال کیا ہے جبکہ ہمارے ڈیٹا کی قسم "آبجیکٹ" ڈیٹا کی قسم نہیں ہے۔ لہذا جب VBA کوڈ مطلوبہ الفاظ "سیٹ" کو دیکھتا ہے تو وہ فرض کرتا ہے کہ یہ کسی شے کے اعداد و شمار کی قسم ہے اور کہتا ہے کہ اسے کسی شے کے حوالہ کی ضرورت ہے۔
تو ، نچلی بات یہ ہے کہ "سیٹ" کلیدی لفظ کا استعمال صرف ورڈ شیٹ ، ورک بک ، وغیرہ جیسے آبجیکٹ متغیر کے حوالہ کرنے کے لئے کیا جاتا ہے۔
مثال # 1
اب نیچے دیے گئے کوڈ پر ایک نظر ڈالیں۔
کوڈ:
ذیلی آبجیکٹ_جدید_غلط () حد ("A101")۔ قدر = ایپلی کیشن 1۔ورکشیٹ فنکشن۔سم (حد ("A1: A100")) اختتام سب
مذکورہ کوڈ میں ، ہم نے A1 سے A100 تک سیل سیل کی کل قیمت حاصل کرنے کے لئے ورک شیٹ فنکشن "SUM" استعمال کیا ہے۔ جب آپ اس کوڈ کو چلاتے ہیں تو ہمیں خرابی کا سامنا کرنا پڑے گا۔
افوہ !! اس کا کہنا ہے کہ "رن ٹائم غلطی‘ 424 ’: آبجیکٹ مطلوب ہے۔
آئیے اب کوڈ کو قریب سے دیکھیں۔
"ایپلی کیشن" استعمال کرنے کے بجائے ہم نے غلطی سے "ایپلی کیشن 1" استعمال کیا ہے ، لہذا اس کو وی بی اے کوڈ میں "آبجیکٹ مطلوبہ" کی غلطی کا سامنا کرنا پڑا۔
اگر لفظ "آپشن ایکسپیشل" کو اہل بنادیا گیا ہے تو پھر ہمیں "متغیر نہیں کی وضاحت" غلطی ملے گی۔
یاد رکھنے والی چیزیں
- مطلوبہ آبجیکٹ کا مطلب یہ ہے کہ آبجیکٹ ڈیٹا ٹائپ ریفرنس کو درست ہونا ضروری ہے۔
- جب کوڈنگ میں آپشن واضح لفظ کو فعال نہیں کیا جاتا ہے تو پھر ہمیں غلط حرف شدہ متغیر الفاظ کے ل Requ آبجیکٹ مطلوبہ خرابی مل جائے گی اور اگر آپشن واضح ہے تو ہمیں غلط ہجے والے متغیر الفاظ کے لئے متغیر نہیں کی گئی خرابی ملے گی۔