VBA रुको कार्य - एक्सेल VBA प्रतीक्षा विधि का उपयोग कैसे करें?

एक्सेल VBA प्रतीक्षा फ़ंक्शन

VBA प्रतीक्षा एक अंतर्निहित फ़ंक्शन है जिसका उपयोग कोड को निर्दिष्ट समय के लिए निष्पादित करने से रोकने के लिए किया जाता है, यह बहुत कुछ वैसा ही है जैसा हम एक नींद आदेश में करते हैं और एक कोड को रोकते हैं जो हम application.wait पद्धति का उपयोग करते हैं।

अन्य कार्यों को पूरा करने के लिए कोड की अगली पंक्ति की प्रगति से पहले कुछ कोड की आवश्यकता होती है। इन मामलों में, हमें कोड को कुछ समय के लिए निष्पादित करने और रोकने से रोकने की आवश्यकता है, फिर निष्पादन के साथ आगे बढ़ें। हम कोड को दो तरीकों से निष्पादित कर सकते हैं, पहला "स्लीप" विधि है, और दूसरा "वेट" विधि है। हमारे पहले के लेख में, हमने VBA कोड को रोकने के लिए "VBA स्लीप" विधि पर चर्चा की है।

"रुको," जैसा कि नाम ही कहता है, यह एक निर्दिष्ट समय सीमा में निष्पादित होने के लिए मैक्रो कोड धारण करेगा। इस पद्धति का उपयोग करते हुए, हमें उस समय को निर्दिष्ट करना होगा जो हमारे कोड को रोकना चाहिए। हम अगले उदाहरण देखेंगे।

WAIT फ़ंक्शन का सिंटैक्स निम्नानुसार है।

हमें उस समय का उल्लेख करने की आवश्यकता है जब हमारे कोड को रोकना चाहिए। जैसा कि आप अंत में देख सकते हैं, इसे बूलियन कहते हैं। इसका अर्थ यह है कि यह बूलियन मानों, अर्थात, TRUE या FALSE के रूप में परिणाम देता है।

निर्दिष्ट समय आने तक, यह कहता है FALSE, और जिस समय निर्दिष्ट समय आ गया, वह TRUE लौटाता है।

यह SLEEP फ़ंक्शन के विपरीत है क्योंकि WAIT एक अंतर्निहित फ़ंक्शन है जिसमें SLEEP एक Windows फ़ंक्शन है। SLEEP फ़ंक्शन तक पहुंचने से पहले, हमें मॉड्यूल के शीर्ष पर नीचे दिए गए कोड का उल्लेख करना होगा। लेकिन WAIT को इसकी आवश्यकता नहीं है।

कोड:

#If VBA7 तब पब्लिक डिक्लेयर PtrSafe सब स्लीप लिब "kern32" (ByVal dwMilliseconds as LongPtr) '64 बिट सिस्टम के लिए #Else पब्लिक डिक्लेयर सब स्लीप लिब' k कर्बर 32 '(ByVal dwMilliseconds लॉन्ग) 32 बिट्स सिस्टम के लिए।

एक्सेल VBA प्रतीक्षा फ़ंक्शन का उपयोग करने के उदाहरण

उदाहरण 1

मान लें कि आप 14:30:00 पर एक एक्सल मिड-डे में काम कर रहे हैं, और आप चाहते हैं कि जब तक समय 14:40:00 नहीं हो जाता तब तक आपका कोड रोक दिया जाए। आप नीचे दिए गए कोड का उपयोग कर सकते हैं।

कोड:

सब Wait_Example1 () Application.Wait "14:40:00" अंत उप

आपके ऑपरेटिंग सिस्टम में 14:40:00 तक पहुंचने तक कोड आपके एक्सेल को काम करने से रोक देगा। इस तरह समय प्रदान करना खतरनाक है क्योंकि हम हमेशा 14:30:00 बजे से काम नहीं करते हैं। यह हर समय बदलती रहती है।

जब भी आप कोड चला रहे हों, कहने दें। आप 2 मिनट तक इंतजार करना चाहते हैं, आप इसे अपने कोड में कैसे देखें?

इसलिए, हम वर्तमान समय से निर्दिष्ट समय में प्रवेश करने के लिए TIME VALUE फ़ंक्शन के साथ VBA Now फ़ंक्शन का उपयोग कर सकते हैं।

बस आपको याद दिलाने के लिए, अब () फ़ंक्शन आपके कंप्यूटर सिस्टम के अनुसार वर्तमान दिनांक और समय लौटाता है। TIMEVALUE फ़ंक्शन 24 घंटे के प्रारूप में 00:00:00 से 23:59:59 तक यानी 11:59:59 PM समय का प्रतिनिधित्व करता है। यह स्ट्रिंग मान को समय मान में परिवर्तित करता है।

उदाहरण के लिए अब () + TIMEVALUE (00:02:30) का अर्थ है वर्तमान समय + 2 मिनट 30 सेकंड।

यदि वर्तमान समय 14:25:30 है, तो यह 14:28:00 हो जाता है।

अपने कोड को मौजूदा समय से अगले 10 मिनट तक निष्पादित करने से रोकने या रोकने के लिए, आप नीचे दिए गए कोड का उपयोग कर सकते हैं।

कोड:

सब Wait_Example2 () Application.Wait (अब) + TimeValue ("00:10:00")) अंतिम उप

सटीक ठहराव के लिए अब () फ़ंक्शन का उपयोग करना महत्वपूर्ण है। अन्यथा, मध्य रात्रि तक आपकी एक्सेल कार्यपुस्तिका को रोका जा सकता है। हालाँकि, हम Esc कुंजी या ब्रेक कुंजी दबाकर किसी भी समय ठहराव विधि से बाहर आ सकते हैं

उदाहरण # 2

हर बार लूप रन के लिए 10 सेकंड का इंतजार करें

प्रतीक्षा पद्धति का उपयोग छोरों के साथ अच्छी तरह से किया जाता है। हर बार लूप के चलने पर 10 सेकंड तक प्रतीक्षा करने की आवश्यकता होती है। उदाहरण के लिए, नीचे दिए गए डेटा को देखें।

लाभ = (बिक्री - लागत) की गणना करने के लिए, आप एक लूप बनाना चाहते हैं, और प्रत्येक लूप के बाद, आप यह जांचने के लिए 10 सेकंड इंतजार करना चाहते हैं कि परिणाम सटीक है या नहीं। नीचे दिया गया कोड ऐसा करेगा।

कोड:

Sub Wait_Example3 () Dim k As Integer For k = 2 To 9 Cells (k, 4) .Value = कक्ष (k, 2) - कक्ष (k, 3) Application.Wait (अब) (+) + समय सारणी ("00:00) : 10 ")) अगला k अंत उप

यह कोड प्रॉफिट कॉलम लाइन ऑफ लाइन की गणना करेगा। पहली पंक्ति के पूरा होने के बाद, अगली पंक्ति की गणना करने से पहले इसे 10 सेकंड तक इंतजार करना होगा।

VBA स्लीप बनाम VBA प्रतीक्षा

VBA सो VBA WAIT
यह एक VBA बिल्ट-इन फ़ंक्शन नहीं है, इस फ़ंक्शन को एक्सेस करने के लिए एक विशेष कोड की आवश्यकता होती है। यह एक VBA बिल्ट-इन फ़ंक्शन है, इस फ़ंक्शन को एक्सेस करने के लिए किसी विशेष कोड की आवश्यकता नहीं होती है।
नींद को समय सीमा के रूप में मिलीसेकंड की आवश्यकता होती है। प्रतीक्षा के लिए एक नियमित समय सीमा की आवश्यकता होती है।
हम मिलीसेकंड में कोड में देरी कर सकते हैं। हम केवल पूरे सेकंड में देरी कर सकते हैं।

दिलचस्प लेख...