وی بی اے ٹائپ کی مماثلت کی خرابی (مثالوں) | رن ٹائم غلطی 13 کو کیسے ٹھیک کریں؟
مماثلت کی غلطی کو ٹائپ کریں یا ہم اسے ایرر کوڈ 13 کے نام سے بھی پکار سکتے ہیں جب ایسا ہوتا ہے جب ہم کسی متغیر کے لئے کوئی قیمت تفویض کرتے ہیں جو اس کے ڈیٹا ٹائپ میں شامل نہیں ہوتا ہے ، مثال کے طور پر ، اگر ہم انٹیجر ڈیٹا ٹائپ متغیر کو اعشاریہ یا لمبی قیمت فراہم کرتے ہیں تو جب ہم اس کوڈ کو چلاتے ہیں تو اس قسم کی مماثلت کی خرابی کا سامنا کرنا پڑتا ہے جو غلطی کوڈ 13 کے طور پر دکھایا جاتا ہے۔
وی بی اے ٹائپ سے میل کھو جانے والی خرابی کیا ہے؟
ایکسل میں وی بی اے ٹائپ میں میل ملاپ کی غلطی "رن ٹائم ایرر" کی ایک قسم ہے اور یہ اس زمرے میں 13 نمبر کی غلطی ہے۔
وی بی اے میں اور ابتدائی افراد کے لئے سیکھنے کو شروع کرنے کے ل the ، وی بی اے کوڈز کے ذریعہ پھینک دی گئی غلطی کو تلاش کرنا مشکل ہے۔ یاد رکھیں VBA غلطی نہیں پھینک رہا ہے بلکہ یہ کوڈ لکھتے وقت ہماری غلطیاں اجاگر کررہا ہے۔
ہم عام طور پر متغیرات کا اعلان کرتے ہیں اور ہم اس میں ڈیٹا کی اقسام تفویض کرتے ہیں۔ جب ہم ان متغیروں کے لئے کوئی قیمت تفویض کرتے ہیں تو ہمیں یہ یاد رکھنے کی ضرورت ہوتی ہے کہ یہ کس طرح کا ڈیٹا رکھ سکتا ہے ، اگر تفویض کردہ قیمت ڈیٹا کی قسم کے مطابق نہیں ہے تو ہمیں "رن ٹائم ایرر 13: ٹائپ میشٹچ" مل جائے گا۔
وی بی اے ٹائپ میل ٹائم رن ٹائم غلطی 13 کو کیسے درست کریں؟
آئیے اس وی بی اے ٹائپ موازیچ غلطی کو سمجھنے کے لئے کچھ مثالوں کو دیکھیں۔
آپ یہ وی بی اے ٹائپ میلانچ ایکسل ٹیمپلیٹ ڈاؤن لوڈ کرسکتے ہیں۔ وی بی اے ٹائپ میلانچ ایکسل ٹیمپلیٹوی بی اے ٹائپ میلانچ - مثال # 1
مثال کے طور پر ذیل میں وی بی اے کوڈ کو دیکھیں۔
کوڈ:
سب ٹائپ_میس میچ_مثال 1 () Dim k As Byte k = "Hiii" MsgBox k End Sub
میں نے متغیر “کے” کو بائٹ قرار دیا ہے۔
اس کا مطلب ہے کہ متغیر “کے” 0 سے 255 تک کی قدر رکھ سکتا ہے۔ لیکن اگلی سطر میں ، میں نے متغیر “کے” کی قیمت “ہائ” کے نام سے متعین کردی ہے۔
یہ بات بالکل واضح ہے کہ ڈیٹا ٹائپ کسی متن کی قدر نہیں رکھ سکتا ، لہذا یہاں غلط قسم کی غلطی آتی ہے۔
وی بی اے ٹائپ میلانچ - مثال # 2
اب ایک مختلف ڈیٹا کی قسم کے ساتھ ایک اور مثال پر نگاہ ڈالیں۔ نیچے کوڈ ملاحظہ کریں۔
کوڈ:
ذیلی قسم_میس میچ_مثال 2 () بولی ایکس کے طور پر دھیما x = 4556 MsgBox x اختتامی سب
ہم نے متغیر "x" کو بولین قرار دیا ہے۔
بولین ایک ڈیٹا ٹائپ ہے جس میں ٹرو یا غلط کی قدر ہوسکتی ہے۔
مذکورہ کوڈ میں ، ہم نے 4556 کی قیمت تفویض کی ہے ، جو TRUE یا غلط کی ڈیٹا ٹائپ ویلیو کے مطابق نہیں ہے۔
جب ہم اس کوڈ کو چلاتے ہیں تو آپ کو کسی قسم کی مماثل غلطی کی توقع ہوگی ، لیکن دیکھیں کہ جب ہم اس کوڈ کو چلاتے ہیں تو کیا ہوتا ہے۔
آپ سوچ رہے ہونگے کہ اس سے 13 وقت کی غلط قسم کی غلطی چلانے کو کیوں نہیں دی جارہی ہے۔
اس کی وجہ ایکسل ہے تمام اعداد کو صفر کے سوا درست۔ صفر کی قدر کو غلط سمجھا جائے گا۔ لہذا اسی وجہ سے ہمیں نتیجہ غلطی کی بجائے سچ کی حیثیت سے مل گیا۔
اب دیکھیں کہ میں متن کے ساتھ ایک عددی قیمت تفویض کروں گا۔
کوڈ:
سب ٹائپ_میس میچ_مثال 2 () دلی x بطور بولین x = "4556a" MsgBox x اختتامی سب
یہ یقینی طور پر رن ٹائم ایرر 13 پھینک دے گا: ٹائپ مِس میچ۔
وی بی اے ٹائپ میلانچ - مثال # 3
اب ، اس مثال کے لئے نیچے کا کوڈ ملاحظہ کریں۔
کوڈ:
سب ٹائپ_میس میچ_مثال 4 () ڈم ایکس بطور انفرادیت ڈم ی سٹرنگ x = 45 y = "2019 جنوری" MsgBox x + y اختتامی سب
متغیر "x" عددی اعداد و شمار کی قسم ہے اور "y" اسٹرنگ ڈیٹا کی قسم ہے۔
X = 45 اور y = 2019 جنوری۔
میسج باکس میں ، میں نے x + y شامل کیا ہے۔
لیکن یہ کامل کوڈ نہیں ہے کیونکہ ہم اسٹرنگ ٹیکسٹس والے نمبر نہیں جوڑ سکتے ہیں۔ ہم رن ٹائم غلطی 13 کا سامنا کریں گے۔
وی بی اے ٹائپ میلانچ - مثال # 4
غیر معمولی معاملات
ایسے حالات موجود ہیں جہاں ایکسل متغیر ڈیٹا کی قسم کو تفویض کردہ غلط ڈیٹا کو معاف کردیتا ہے۔ مثال کے طور پر نیچے کا کوڈ دیکھیں۔
کوڈ:
سب ٹائپ_میس میچ_مثال33 () ڈیم ایکس جیسا لانگ ڈیم وائی لانگ x = 58.85 y = "85" MsgBox x & vbNewLine & y اختتام سب
دو اعلان کردہ متغیرات "x" اور "y" ہیں۔
اس متغیر کے ل assigned ، تفویض کردہ ڈیٹا کی قسم "لمبی" ہے۔
اعداد و شمار کی لمبائی صرف اعداد کو قبول کرتی ہے ، اعداد اعداد کو نہیں۔
لہذا عام خیال یہ ہے کہ رن ٹائم ایرر 13 کی طرح سے مماثل غلطی پائی جائے۔
لیکن ہم دیکھتے ہیں کہ جب ہم اس کوڈ کو چلاتے ہیں تو کیا ہوتا ہے۔
زبردست!!! ہمیں اقدار 59 اور 85 کی حیثیت سے مل گئیں۔
اس کی وجہ یہ ہے کہ وی بی اے اعشاریہ 58.85 کو قریب ترین عددی قیمت میں تبدیل کرے گا اور اگرچہ اعداد ڈبل قیمت کے ساتھ منسلک ہیں پھر بھی یہ صرف عددی قیمت میں بدل جاتا ہے۔