اپنے میکرو کوڈ کو روکنے کے ل to ایکسل وی بی اے نیند فنکشن

ایکسل وی بی اے نیند فنکشن

وی بی اے نیند فنکشن ونڈوز فنکشن ہے جو ونڈوز ڈی ایل ایل فائلوں کے نیچے موجود ہوتا ہے جو میکرو کے طریقہ کار کو ایک مخصوص مقدار میں چلنے سے روکنے یا روکنے کے لئے استعمال ہوتا ہے جس کے بعد ہم اس پروگرام کو دوبارہ شروع کرسکتے ہیں۔

ایسے حالات ہیں جہاں ہمیں کاموں کے دوسرے سیٹوں کو مکمل کرنے کے لئے اپنے میکرو چلانے کے عمل کو روکنے کی ضرورت ہے۔ کاموں کے دوسرے سیٹ ہمارے کوڈنگ کا حصہ یا دوسرے میکرو طریقہ کار کا حصہ ہوسکتے ہیں یا یہ موجودہ ایکسل میکرو کے لئے ان پٹ ہوسکتے ہیں۔ جب یہ پروگرام چل رہا ہے تو آپ اسے کیسے روک سکتے ہیں؟ ہم صارف کے ذریعہ متعین کردہ کچھ وقت کیلئے ضابطہ اخلاق کو روک سکتے ہیں اور اس کے بعد ہم اس پروگرام کو دوبارہ شروع کرسکتے ہیں۔ ہم VLE میں سلیپ فنکشن کا استعمال کرکے کرسکتے ہیں۔

وی بی اے سلیپ فنکشن کیا کرتا ہے؟

نیپ کے نام سے ہی کہا گیا ہے کہ "کچھ وقت کے لئے سو جاؤ" ، "کچھ وقت آرام کرو" ، "کچھ وقت کے لئے توقف کرو" ، کچھ وقت کے لئے وقت بند ہوجانا "وغیرہ۔ نیند کی تقریب سے صارفین کو ہمارے میکرو کوڈ کو ملی سیکنڈ میں روکنے کی سہولت ملتی ہے۔ اس کا استعمال کرتے ہوئے ہم میکرو کوڈ کے عمل میں تاخیر کرسکتے ہیں۔

اگر آپ کو لگتا ہے کہ ہمارے پاس سلپ نامی ایک بلٹ ان فنکشن ہے تو آپ غلط ہیں کیونکہ وی بی اے میں ایسا کوئی فنکشن نہیں ہے بلکہ ہمارے پاس ایک فنکشن ہوتا ہے جس کی حیثیت ونڈوز فنکشن کی حیثیت سے نیند ہے۔ کوڈ کا ایک خاص سیٹ داخل کرکے ہم واقعی میں اس فنکشن کو وی بی اے میں کال کرسکتے ہیں۔ درحقیقت ، یہ ونڈوز ڈی ایل ایل فائلوں کے اندر موجود ایک فنکشن ہے ، لہذا ہمیں وی بی اے میں سبروٹین شروع ہونے سے پہلے API کے نام کا اعلان کرنے کی ضرورت ہے۔

ذیل میں وی بی اے کوڈ ہے۔

کوڈ:

# اگر VBA7 پھر عوامی اعلان PtrSafe سب نیند لیب "kernel32" (بطور LongWtr dwMilliseconds) ایکسل # دوسرا پبلک ڈیکلیئر سب نیب لیب "kernel32" کے 64-بٹ ورژن کے لئے (بائیوال dwMilliseconds طویل) 'کے 32 بٹ ورژن کے لئے ایکسل # اختتام اگر 

اس سے پہلے کہ آپ میکرو کوڈز لکھنا شروع کریں اس سے پہلے اوپر کی کاپی کریں اور اپنے ماڈیول میں چسپاں کریں۔ اسے آپ کے ماڈیول میں اس طرح چسپاں کیا جانا چاہئے۔

مثال

اس سے پہلے کہ میں آپ کو کوڈ لکھنے کا طریقہ دکھاتا ہوں ، میں آپ کو نیند کے فنکشن کے بارے میں کچھ اور ہی بتاتا ہوں۔ اس عمل کو ملی سیکنڈ میں تاخیر کرتا ہے۔ لہذا 1 سیکنڈ 1000 ملی سیکنڈ کے برابر ہے ، اگر آپ 10 سیکنڈ کیلئے رکنا چاہتے ہیں تو یہ 10000 ملی سیکنڈ ہونا چاہئے۔

آپ یہ وی بی اے سلیپ ایکسل ٹیمپلیٹ ڈاؤن لوڈ کرسکتے ہیں۔ وی بی اے سلیپ ایکسل ٹیمپلیٹ

مثال # 1

ذیلی عمل کے آغاز سے پہلے ایک بار API کوڈ چسپاں ہوجانے کے بعد ، ایک میکرو نام تشکیل دیں۔

کوڈ:

# سب نیند_مثال 1 () اختتام سب 

اسٹرنگ کے طور پر دو متغیرات کا اعلان کریں۔

کوڈ:

 ڈم اسٹارٹ ٹائم بطور اسٹرنگ ڈم اینڈ ٹائم اسٹرنگ 

کے لئے وقت آغاز متغیر TIME فنکشن کی قدر تفویض کریں۔ نوٹ: ایکسل فنکشن میں ٹائم موجودہ وقت کی واپسی کرتا ہے۔

کوڈ:

اسٹارٹائم = وقت

اب ہم میسج باکس VBA میں اس میسج کو ڈسپلے کریں گے۔

کوڈ:

اسٹارٹائم = ٹائم MsgBox اسٹارٹائم

اب ہم نیند فنکشن کا استعمال کرتے ہوئے کوڈ کو 10 سیکنڈ کیلئے رکیں گے۔ جیسا کہ میں نے بتایا کہ اس نے کوڈ کو سیکنڈ سیکنڈ میں روک دیا ہے لہذا 10 سیکنڈ کے لئے توقف کرنے کے لئے ہمیں 10000 ملی سیکنڈ استعمال کرنے کی ضرورت ہے۔

کوڈ:

 سب نیند_اختیار 1 () ڈم اسٹارٹ ٹائم اسٹرنگ ڈم اینڈ ٹائم جیسا سٹرنگ اسٹارٹ ٹائم = ٹائم میس بکس اسٹارٹائم نیند (10000) اختتامی سب 

اب دوسرا متغیر EndTime استعمال کریں اور موجودہ وقت تفویض کریں۔

کوڈ:

 سب نیند_اختیار 1 () ڈم اسٹارٹ ٹائم اسٹرنگ ڈم اینڈ ٹائم جیسا سٹرنگ اسٹارٹ ٹائم = ٹائم میس بکس اسٹارٹائم نیند (10000) اینڈ ٹائم = ٹائم میس بکس اینڈ ٹائم اختتامی سب 

اب دو متغیر وقت آغاز اور آخر وقت میکرو آغاز اور اختتامی وقت کا انعقاد کرے گا۔ اس میکرو کو چلائیں ، پہلے ہم میکرو شروع ہونے کا وقت دیکھیں گے۔ یعنی آپ کے سسٹم میں موجودہ وقت۔

ٹھیک پر کلک کریں ، یہ 10 سیکنڈ کے لئے سو جائے گا۔ آپ بفر کی علامت دیکھ سکتے ہیں۔

10 سیکنڈ کے بعد یہ کوڈ کو دوبارہ شروع کرنا شروع کردے گا ، لہذا ، یہ اختتامی وقت ظاہر کرے گا یعنی 10 سیکنڈ انتظار کرنے کے بعد موجودہ وقت کیا ہے۔

اب آپ دیکھ سکتے ہیں کہ میکرو 10:54:14 پر شروع ہوا اور 10:54:24 پر ختم ہوا یعنی بالکل 10 سیکنڈ کا فرق ہے۔ ان 10 سیکنڈ میں ، VBA کوڈ چلنے کو روکتا ہے۔

مثال # 2 - لوپس میں نیند کا فنکشن

وی بی اے میں لوپ کے ساتھ نیند کا بہترین استعمال ہوتا ہے۔ مثال کے طور پر ، میں VBA میں لو لوپ کا استعمال کرتے ہوئے 1 سے 10 تک سیریل نمبر داخل کرنا چاہتا ہوں۔

ایک نمبر داخل کرنے کے بعد میرے کوڈ پر 3 سیکنڈ انتظار کرنا چاہئے ، لہذا جب لوپ 10 بار چلتا ہے تو اس کا مجموعی طور پر 30 سیکنڈ ہونا چاہئے۔

کوڈ:

 سب نیند_امثال 2 () دیم ک جیسا عدد k = 1 کرو جبکہ K <= 10 سیل (k ، 1). قیمت = kk = k + 1 نیند (3000) '1000 ملی سیکنڈ 1 سیکنڈ ہے لہذا 3000 لوپ اینڈ کے برابر ہے سب 

اس کوڈ کو چلائیں اور اس عمل کو مکمل کرنے کے ل you آپ کو کم سے کم 30 سیکنڈ تک انتظار کرنا پڑے گا۔

عین وقت کو ٹریک کرنے کے لئے نیچے کا کوڈ استعمال کریں۔

کوڈ:

 سب نیند_امثال 2 () Dim k As Integer Dim StartTime As Sting Dim EndTime As String StartTime = Time MsgBox "آپ کا کوڈ شروع ہوا" اور اسٹارٹائم k = 1 کرتے ہیں جبکہ K <= 10 سیل (k ، 1). قیمت = kk = k + 1 نیند (3000) '1000 ملی سیکنڈ 1 سیکنڈ ہے لہذا 3000 3 سیکنڈ کے برابر ہے لوپ اینڈ ٹائم = ٹائم MsgBox "آپ کا کوڈ ختم ہوا" اور اینڈ ٹائم اینڈ سب 

یہ کوڈ آپ کو 2 میسج باکس دکھائے گا ، پہلا والا آغاز کا وقت اور دوسرا اختتامی وقت دکھائے گا۔

نوٹ: اس کوڈ کو چلاتے وقت ، آپ ایکسل کا استعمال نہیں کرسکتے ہیں ، یہاں تک کہ فرار کی چابی بھی کام نہیں کرے گی۔