VBA آن غلطی کے بیانات | نقائص سے نمٹنے کے لئے سرفہرست 3 طریقے
ایکسل وی بی اے آن ایرر اسٹیٹمنٹ
VBA آن ایرر بیان غلطی سے نمٹنے کے طریقہ کار کی ایک قسم ہے جو کوڈ کی رہنمائی کے لئے استعمال ہوتی ہے اگر اسے کسی بھی قسم کی خرابی کا سامنا کرنا پڑتا ہے ، عام طور پر جب کوڈ میں کسی خرابی کا سامنا ہوتا ہے تو اس پر عمل درآمد روک جاتا ہے لیکن ضابطے میں اس بیان کے ساتھ ہی ضابطہ اخلاق جاری رہتا ہے۔ جب اس میں کسی غلطی کا سامنا کرنا پڑتا ہے تو اس نے ہدایت نامے ترتیب دیئے ہیں۔
کوڈ میں غلطی کا اندازہ لگانا آپ کو وی بی اے کوڈنگ میں حامی بناتا ہے۔ آپ کوڈ کو 100٪ موثر نہیں بناسکتے ہیں ، یہاں تک کہ اگر آپ اپنے کوڈ کے بارے میں پراعتماد ہیں تو یہ کسی بھی طرح سے خرابی پھیل سکتا ہے۔
ہر طرح کی غلطی کی نشاندہی کرنا اور ان کو ہینڈل کرنا قریب قریب ناممکن کام ہے ، لیکن ہمارے پاس وی بی اے میں غلطی سے نمٹنے کے مختلف طریقے ہیں۔ کوڈ لکھتے وقت آپ کو اندازہ نہیں ہوسکتا ہے کہ غلطی کا کوڈ کس طرح سے پھیل سکتا ہے لیکن اگر کوئی غلطی آجاتی ہے تو آپ خود کوڈ کو لکھنے سے زیادہ ڈیبگنگ میں زیادہ وقت صرف کریں گے۔
خرابی کیا ہے؟
ایک خامی کچھ بھی نہیں ہے لیکن فعالیت یا غلط کوڈ کی وجہ سے ایک لائن کوڈ کو پھانسی نہیں دی جاسکتی ہے۔ لہذا غلطی کا اندازہ لگانے اور اسے سنبھالنے کی کوشش کریں۔
مثال کے طور پر ، اگر آپ اس شیٹ کو حذف کرنے کی کوشش کرتے ہیں جو وہاں موجود نہیں ہے تو پھر ظاہر ہے کہ ہم اس لائن کوڈ پر عمل نہیں کرسکتے ہیں۔
ایک غلطی تین اقسام کی ہوتی ہے ایک غیر اعلانیہ متغیر کی وجہ سے غلطی مرتب کی جاتی ہے۔ دوسرا ایک کوڈر کے ذریعہ غلط اندراجات کی وجہ سے ڈیٹا انٹری کی غلطی ہے ، اور تیسرا ایک رن ٹائم غلطی ہے جس کی وجہ وی بی اے کوڈ لائن کو نہیں پہچان سکتا ہے۔ ورک شیٹ یا ورک بک پر رسائی حاصل کرنے یا اس پر کام کرنے کی کوشش کرنے کے لئے جو وہاں موجود نہیں ہے۔
لیکن ہمارے پاس وی بی اے میں ایک بیان موجود ہے تاکہ ان تمام قسم کی غلطیوں کو سنبھال لیا جا “یعنی" آن ایرر "بیان۔
غلطی کے بیانات کی اقسام
وی بی اے میں غلطیوں سے نمٹنے کا اہم نکتہ "آن ایرر" بیان ہے۔ مثال کے طور پر غلطی پر "اگلی لائن دوبارہ شروع کریں" ، "جائیں یا کسی دوسری لائن پر جائیں" ، وغیرہ…
آن ایرر بیان میں اس کے تین قسم کے بیانات ہوتے ہیں۔
- گوٹو 0اس کا مطلب ہے جب بھی رن ٹائم کی خرابی اس وقت ہوتی ہے یا VBA کو غلطی کا پیغام خانہ ڈسپلے کرنا چاہئے جس میں کہا گیا ہے کہ اس کی غلطی کا سامنا کرنا پڑا۔ جیسے ہی وی بی اے کوڈ پر عمل درآمد کرتا ہے اس کوڈ پر موجود اس خاص بلاک میں موجود تمام خرابی ہینڈلرز کو غیر فعال کردیتا ہے۔
- اگلا دوبارہ شروع کریں اس کا مطلب ہے کہ جب بھی غلطی ہوتی ہے تو یہ بیان ایکسل کو ہدایت کرتا ہے کہ وہ اس غلطی کو نظر انداز کریں اور بغیر کسی خرابی پیغامات کو ظاہر کیے اگلے کوڈ کی اگلی لائن (دوبارہ شروع کریں) پر جائیں۔ اس کا مطلب یہ نہیں ہے کہ اس سے غلطی ٹھیک ہوجائے گی بلکہ یہ صرف غلطی کو نظرانداز کرتا ہے۔
- GoTo [لیبل] اس کا مطلب ہے جب بھی وی بی اے کو خرابی پیش آتی ہے تو تفویض کردہ لیبل پر جائیں۔ اس کوڈ کو کوڈر کے ذریعہ فراہم کردہ مخصوص لائن پر کودنے کا اہل بناتا ہے۔
وی بی اے میں نقائص سے نمٹنے کے سرفہرست 3 طریقے
آپ یہ VBA آن ایرر سانچہ ڈاؤن لوڈ کرسکتے ہیں# 1 - غلطی پر دوبارہ شروع کریں اگلا
فرض کریں کہ آپ 20 کی قیمت 0 سے تقسیم کر رہے ہیں اور آپ نے تقسیم کا نتیجہ اس کو تفویض کرنے کے لئے متغیر کا اعلان کیا ہے۔
کوڈ:
سب onError_Example1 () Dim i as Integer i = 20/0 اختتام سب
اگر آپ اس کوڈ کو چلاتے ہیں تو یہ نیچے کی غلطی پھینک دے گا۔
لہذا آپ کسی بھی تعداد کو صفر قدر سے تقسیم نہیں کرسکتے ہیں۔ رن ٹائم کی غلطی نمبر 11 ہے یعنی ڈویژن از زیرو۔
اب میں کوڈ میں ایک اور لائن شامل کروں گا۔
کوڈ:
سب onError_Example1 () Dim i as Integer، j جیسا کہ مکمل طور پر i = 20/0 j = 20/2 آخر سب
اب میں اگلے غلطی سے شروع والے بیان کو سب سے اوپر دوں گا۔
کوڈ:
سب onError_Example1 () Dim i as Inteजर کے طور پر ، j جیسا کہ انٹیجر کے طور پر غلطی سے دوبارہ شروع کریں اگلا i = 20/0 j = 20/2 اختتامی سب
اب اگر میں اس کوڈ کو عملی جامہ پہناتا ہوں تو وہ مجھے کسی غلطی کے پیغامات نہیں دے گا بلکہ یہ کوڈ کی اگلی لائن یعنی j = 20/2 پر عملدرآمد کرے گا۔
# 2 - غلطی پر GoTo Label
میں نے تین متغیرات کا اعلان کیا ہے۔
کوڈ:
سب آنرر_مثال 1 () دھیان سے بطور اعداد ، j جیسا کہ عدد ، k عدد اعداد کے طور پر
ان تینوں متغیرات کے ل I میں تقسیم کا حساب کتاب تفویض کروں گا۔
کوڈ:
سب آنرر_مثال 1 () دھیان سے بطور اعداد ، j جیسا کہ اعداد و شمار ، k = مکمل طور پر i = 20/0 j = 20/2 k = 10/5
ان تینوں حساب کا نتیجہ میسج باکس میں دکھایا جائے گا۔
کوڈ:
سب آنرر_مثال 1 () دھیم دراز کے طور پر ، ج کے طور پر اعدادوشمار ، k جیسا کہ اعداد و شمار i = 20/0 j = 20/2 k = 10/5 MsgBox "i کی قدر" ہے اور میں & vbNewLine & "j کی قیمت ہے "& J & _ vbNewLine &" K کی قدر ہے "& K & vbNewLine End Sub
اب میں اس کوڈ کو عملی جامہ پہنانے کی کوشش کروں گا کیونکہ "I" کا حساب کتاب مناسب نہیں ہے جب ہمیں رن ٹائم غلطی ہوگی۔
اب میں "دوبارہ شروع ہونے والی خرابی دوبارہ شروع کریں" بیان شامل کروں گا۔
کوڈ:
سب آنرر_اثقال 1 () دھیان دیں جیسا کہ اعدادوشمار ، جیسا کہ اعدادوشمار ، کے طور پر انٹیجر ان غلطی دوبارہ شروع کریں اگلا i = 20/0 j = 20/2 k = 10/5 MsgBox "i کی قیمت" ہے اور میں & vbNewLine & "The j کی قیمت "& j & _ vbNewLine &" k کی قدر ہے "& K & vbNewLine End Sub ہے
اگر میں اس پر عمل کرتا ہوں تو یہ "I" کے حساب کتاب کو چھوڑ کر باقی دو حساب کتاب پر عملدرآمد کرائے گا اور نتیجہ اس طرح ہے۔
اب "اگلی غلطی دوبارہ شروع کریں" کے بجائے میں "آن غلطی GoTo KCalculation" شامل کروں گا
کوڈ:
سب آنرر_مثال 1 () دھیان کے طور پر ، جیسا کہ اعدادوشمار کے طور پر ، k غلطی کے طور پر اعدادوشمار کے طور پر جانا Go Ko کیلکولیشن: i = 20/0 j = 20/2 K حساب & "j کی قدر ہے" & J & _ vbNewLine & "K کی ویلیو ہے" & K & vbNewLine End Subنوٹ: یہاں "کے کیلکولیشن" وہ لیبل نام ہے جو میں نے دیا تھا ، آپ اپنے لیبل کا نام بغیر کسی جگہ کے دے سکتے ہیں۔
اب اگر میں اس کوڈ کی لائن پر عمل کرتا ہوں تو یہ اگلی لائن پر نہیں جائے گا بلکہ اس لیبل کے نام سے کود پڑے گا یعنی میں نے داخل کیا ہے۔ “KCalcualtion”۔ یہاں یہ "I" کے ذریعہ دی گئی غلطی کو نظرانداز کرے گا اور اس سے "j" حساب کتاب نہیں ہوگا بلکہ فوری طور پر یہ "KCalcualtion" میں چھلانگ لگاتا ہے۔
# 3 - VBA میں پرنٹ ایرر نمبر
کوڈ کے اختتام پر ، ہم غلطی کا نمبر ایک علیحدہ میسج باکس میں بھی پرنٹ کرسکتے ہیں۔ درج ذیل کوڈ لائن یہ کام کرے گا۔
کوڈ:
غلطی
اب میں اس کوڈ کو چلاؤں گا پہلے پیغام خانہ حساب کے نتائج دکھائے گا۔
ٹھیک ہے پر کلک کریں ، یہ غلطی کا نمبر ظاہر کرنے کے لئے ایک اور میسج باکس دکھائے گا۔
ہم 11 کے نتیجے میں جاتے ہیں یعنی زیرو کے ذریعہ ڈویژن۔
ہم تعداد کے بجائے غلطی کی تفصیل بھی حاصل کرسکتے ہیں۔ ہمیں صرف کوڈ کو تبدیل کرنے کی ضرورت ہے ، نیچے کوڈ ہے۔
کوڈ:
غلط بیان
اس کی تفصیل اس طرح دکھائے گی۔
یاد رکھنے والی چیزیں
- کوڈ کے اختتام پر "آن دوبارہ غلطی دوبارہ شروع کریں" میں داخل ہونے کے بعد "آن ایرر GoTo 0" کے بیان کو شامل کرنا نہ بھولیں۔
- لیبل کا نام دونوں جگہ ایک جیسے ہونا چاہئے۔
- پہلے سے لیبل کے نام کی وضاحت کی ضرورت نہیں ہے۔
- آخر میں ، ہمیشہ یہ دیکھو کہ غلطی کیا تھی علیحدہ میسج باکس کے ذریعے ہوا۔