VBA रिटर्न - VBA में GoSub रिटर्न स्टेटमेंट का उपयोग कैसे करें?

एक्सेल VBA रिटर्न स्टेटमेंट

वीबीए अद्भुत है और वीबीए कोडिंग के अंदर और बाहर जानने वालों के लिए एक जीवन रक्षा है। यह हमारे कार्यस्थल पर समय की बचत कर सकता है। हमारे पहले के लेखों में, हमने VBA रिटर्न की कई चीजों और अवधारणाओं पर चर्चा की है। ऐसी ही एक अवधारणा है GoSub रिटर्न स्टेटमेंट। इस लेख में, हम आपको इन अवधारणाओं से परिचित कराएंगे।

GoSub रिटर्न स्टेटमेंट क्या है?

बयान "गो सब" का अर्थ है कि यह नाम के माध्यम से लेबल द्वारा इंगित कोड की रेखा पर जाएगा और कार्य का एक विशिष्ट सेट तब तक करता है जब तक कि यह "रिटर्न" न मिले।

यह त्रुटि हैंडलर कथन "GoTo लेबल" के समान है, लेकिन "GoSub Return" जो करता है वह लेबल नाम से जारी रखने के बजाय कोड की अगली पंक्ति में वापस आ जाएगा।

नीचे VBA GoSub रिटर्न स्टेटमेंट का सिंटैक्स है।

GoSub (लेबल नाम)  … कोड ऑफ़ लाइन  (लेबल नाम):  … कार्य करने के लिए कोड ऑफ़ लाइन

मुझे पता है कि वाक्य रचना को पढ़ने से समझना मुश्किल है लेकिन उदाहरण का उपयोग करके, आप अवधारणा को समझने में सक्षम हो सकते हैं।

इससे पहले कि मैं उदाहरणों पर जाऊं, मुझे इस कथन के बारे में कुछ बातें बताइए।

  • GoSub स्टेटमेंट VBA में सबरूटीन कहता है, जिसे उसी रूटीन या फंक्शन के भीतर एक लेबल द्वारा नाम दिया गया है।
  • GoSub और Return दोनों एक ही प्रक्रिया के भीतर होने चाहिए। हम यहां एक और सबरूटीन मैक्रो नहीं कह सकते।
  • आप किसी भी GoSub रिटर्न स्टेटमेंट का परिचय दे सकते हैं।
  • एक रिटर्न स्टेटमेंट उस कोड के निष्पादन को जारी रखेगा जहां से लेबल नाम से संकेतित उपप्रकार में जाने से पहले वह रवाना हो गया था।

VBA में GoSub रिटर्न स्टेटमेंट का उपयोग कैसे करें?

उदाहरण 1

इस कथन के उपयोग को समझने के लिए, पहले नीचे दिए गए कोड को देखें। बाद में मैं आपको लाइन द्वारा कोड लाइन समझाऊंगा।

कोड:

Sub Go_Sub_Return () GoSub Macro1 'लेबल Name1 GoSub Macro2' लेबल Name2 GoSub Macro3 'लेबल Name3 Exit Sub Macro1: MsgBox "अब Macro1 चल रहा है:" Macro2: MsgBox "अब Macro2 चला रहा है:" Macro2 को वापस लाएं "।

इस कोड को समझने के लिए, F8 कुंजी दबाकर कोड लाइन को लाइन से चलाएं। पहली बार F8 कुंजी दबाने पर, यह मैक्रो रनिंग आरंभ करेगा।

अब अगली पंक्ति में जाने के लिए F8 कुंजी को एक बार दबाएं।

हम सभी जानते हैं कि मैक्रो कोड लाइन को लाइन से चलाएगा, लेकिन यदि आप F8 कुंजी दबाते हैं, तो यह अगली पंक्ति में नहीं जाएगा; बल्कि, यह अलग तरह से काम करता है।

यह "Macro1" नाम के लेबल पर कूद गया है, क्योंकि यह पिछले बयान "GoSub" में है, इसलिए हमने मैक्रो को उप-प्रक्रिया लेबल नाम "Macro1" पर जाने का निर्देश दिया है, इसलिए, यह संबंधित लेबल नाम पर कूद गया है।

अब F8 कुंजी दबाकर, एक्सेल मैक्रो संदेश बॉक्स में परिणाम दिखाने के "मैक्रो 1" कार्य को अंजाम देगा।

कोडिंग विंडो पर लौटने के लिए संदेश बॉक्स के ओके पर क्लिक करें।

अब इसने “रिटर्न” स्टेटमेंट पर प्रकाश डाला था। यदि आप F8 कुंजी को एक बार दबाते हैं, तो यह क्या करेगा यह लेबल नाम पर जाने से पहले कोड की पिछली पंक्ति में "वापस लौटें" होगा।

पिछली बार इसने "GoSub Macro1" कोड निष्पादित किया था, और इसने लेबल का नाम "Macro1" कार्य किया। चूंकि हमने "रिटर्न" कथन का उल्लेख किया है, इसलिए यह कोड की अगली पंक्ति पर वापस आ जाता है

"GoSub Macro2"

कथन क्या है, "Macro2 नामक लेबल पर जाना है"। नीचे दिए गए लेबल "मैक्रो 2" के लिए, मैंने कार्यों के एक विशिष्ट सेट का उल्लेख किया है।

अब हमें संदेश बॉक्स में मूल्य दिखाने का दूसरा उपप्रकारक कार्य मिलेगा।

अब Ok पर क्लिक करें। यह दूसरे "रिटर्न" स्टेटमेंट को उजागर करेगा।

अब F8 कुंजी पर क्लिक करने पर, यह "Macro2" लेबल पर लौटने से पहले कोड की अगली पंक्ति में वापस आ जाएगा। अब यह "GoSub Macro3" पर प्रकाश डालेगा।

अब यह "मैक्रो 3" लेबल पर जाएगा, F8 कुंजी दबाएं।

अब तीसरे लेबल टास्क को अंजाम दिया जाएगा।

अब ओके पर क्लिक करें। यह "रिटर्न" स्टेटमेंट को उजागर करेगा।

अब F8 कुंजी को एक बार दबाएं; यह कोड की लाइन "एक्जिट सब" पर वापस आ जाएगा।

No, it will exit the subroutine. It is necessary to add the word “Exit Sub” otherwise, and it will encounter an error.

Example #2

Now take a look at one more example of using the GoSub Return statement.

Code:

Sub Go_Sub_Return1() Dim Num As Long Num = Application.InputBox (Prompt:="Please enter the number here", Title:="Divsion Number") If Num> 10 Then GoSub Division Else MsgBox "Number is less than 10" Exit Sub End If Exit Sub Division: MsgBox Num / 5 Return End Sub

This code will ask you to enter the number which is>10. If the number is>10, then it will perform the task of dividing it by 5 (Label Name is “Division”), or else it will show the message as “Number is less than 10”.

Things to Remember

  • GoSub और Return स्टेटमेंट में लेबल का नाम समान होना चाहिए, और रिटर्न स्टेटमेंट लेबल नाम में एक कॉलोन (:) का पालन किया जाना चाहिए।
  • त्रुटि संदेश से बचने के लिए सभी रिटर्न स्टेटमेंट के बाद VBA में हमेशा Exit Sub का उपयोग करें।

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