VBA लूप्स - शीर्ष 4 प्रकार के लूप की सूची (उदाहरणों के साथ)

विषय - सूची

एक्सेल VBA लूप्स

लूप आमतौर पर सभी प्रोग्रामिंग भाषाओं में उपयोग किए जाते हैं, जहां एक निश्चित आवश्यकता या एक मापदंड है जब हमें उन कोड के लिए एक निश्चित समय चलाने के लिए एक निश्चित कोड की आवश्यकता होती है, अब हम VBA में कई प्रकार के लूप हैं जैसे कि DoBA जबकि, लूप तक, प्रत्येक लूप के लिए और प्रत्येक लूप के लिए, ये लूप कोड को निष्पादित करने में मदद करते हैं जब तक कि शर्त पूरी नहीं हो जाती।

मुझे यह बयान बहुत शुरुआत में ही देना चाहिए। "यदि आप VBA में मास्टर करना चाहते हैं, तो आपको VBA मैक्रोज़ में लूप की अवधारणा को पूरा करने की आवश्यकता है।"

लूप कुछ भी नहीं है, बल्कि कोशिकाओं की एक श्रृंखला के माध्यम से जा रहा है, कोशिकाओं या वस्तुओं के संग्रह के लिए समान कार्य को दोहराने के लिए वस्तुओं की एक श्रृंखला के माध्यम से जा रहा है। लूप का उपयोग करके कोड की लाइनों के एक अलग सेट में कार्य करने के बजाय, हम कोड की लंबाई को कम से कम संभव कर सकते हैं।

VBA लूप्स के शीर्ष 4 प्रकारों की सूची

  1. नेक्स्ट लूप के लिए
  2. प्रत्येक लूप के लिए
  3. लूप करते समय
  4. लूप तक करें

आइए इनमें से प्रत्येक प्रकार को विस्तार से देखें।

टाइप # 1 - अगले लूप के लिए

अगले लूप के लिए हमें कोशिकाओं की सीमा के माध्यम से लूप करने और लूप में निर्दिष्ट प्रत्येक सेल के लिए एक ही कार्य करने की अनुमति देता है। यहां हमें शुरुआती संख्या और अंतिम संख्या बताने की आवश्यकता है।

उदाहरण

उदाहरण के लिए, यदि आप 1 से 10 तक सीरियल नंबर डालना चाहते हैं, तो नीचे सीरियल नंबर डालने का पारंपरिक तरीका है।

उप सीरीयलनंबर ()

श्रेणी ("A1")। मान = 1
श्रेणी ("A2")। मान = 2
श्रेणी ("A3")। मान = 3
श्रेणी ("A4")। मान = 4
श्रेणी ("A5")। मान = 5
रेंज ("ए 6")। मूल्य = 6
रेंज ("ए 7")। मूल्य = 7
रेंज ("ए 8")। मूल्य = 8
रेंज ("ए 9")। मूल्य = 9
रेंज ("ए 10")। मूल्य = 10

अंत उप

ठीक लग रहा है, है ना? लेकिन यहां समस्या केवल 10 बार है जब हमें इस कार्य को करने की आवश्यकता है। लेकिन सोचिए कि अगर आप 100 या 1000 नंबर डालना चाहते हैं, तो क्या आप कोड 100 या 1000 लाइन लिख सकते हैं। यह असंभव है, और यही वह जगह है जहां फॉर नेक्स्ट लूप की सुंदरता काम आती है।

चरण 1: ओपन मैक्रो और चर घोषित मैं के रूप में पूर्णांक।

सब इंसर्ट_सारियल_नंबर ()

डिम आई अस इंटेगर

अंत उप

चरण 2: अब फॉर लूप खोलें । यहां चर का उपयोग करके लूप की शुरुआत और अंत का उल्लेख किया गया है

चरण 3: अब उस कोड को लिखें जिसे आप प्रदर्शन करना चाहते हैं। हमें A1 से A10 सेल में 1 से 10 तक नंबर डालने होंगे। रेंज विधि लागू करने के बजाय, सेल विधि लागू करें।

यह पंक्ति संख्या पूछ रहा है के बाद से हम पहले से ही चर घोषणा की है मैं पहली बार में एक पूर्णांक के रूप में। इसका मान १ है। इसलिए मैं उल्लेख करता हूं जैसे कि आपकी पंक्ति संख्या और १ आपके कॉलम नंबर के रूप में।

अब वर्तमान सेल मूल्य के मूल्य के बजाय नंबर एक का उल्लेख उल्लेख से एक होना चाहिए, मैं मान के रूप में। क्योंकि हर बार लूप चलता है I मान 1 से बढ़ जाएगा।

अब F8 कुंजी को एक-एक करके एक लाइन में स्टेप करें। F8 को तब तक दबाएं जब तक वह लूप तक न पहुंच जाए।

यह पीला रंग इस बात का संकेत है कि कोड की चयनित लाइन चलने वाली है। I पर एक कर्सर रखें , और यह शून्य के रूप में मान दिखाएगा।

अब एक और बार F8 कुंजी दबाएं और i पर एक कर्सर रखें और अब मान 1 है।

तो हर जगह i का मान अब 1 के बराबर है। " सेल (I, 1) .value = I" का अर्थ है सेल (1, 1) ।value = 1।

F8 कुंजी दबाएं और सेल A1 में मान देखें। आपको सेल 1 में 1 देखना होगा।

अब, यदि आप F8 कुंजी दबाते हैं, तो यह एक बार फिर For लूप में चला जाएगा क्योंकि चर i की अंतिम सीमा 10. है। इस बार I मान 2 होगा।

अगले पाश के लिए 10 बार चलेगा और 1 से 10 तक सीरियल नंबर डालें।

टाइप # 2 - प्रत्येक लूप के लिए

VBA में प्रत्येक लूप के लिए ऑब्जेक्ट के संग्रह के माध्यम से लूपिंग के लिए है। अगले लूप के लिए कोशिकाओं के माध्यम से छोरों और कार्य करते हैं, और प्रत्येक लूप के लिए वर्कशीट, चार्ट, वर्कबुक, आकृतियाँ जैसी वस्तुओं के माध्यम से।

इस लूप का उपयोग करके, हम सभी वर्कशीट के माध्यम से जा सकते हैं और कुछ कार्य कर सकते हैं। उदाहरण के लिए, आप वर्कशीट को छिपाने और अनसाइड करने के लिए सभी वर्कशीट के माध्यम से लूप कर सकते हैं।

उदाहरण 1

यदि आप उस शीट को छोड़कर सभी कार्यपत्रकों को छिपाना चाहते हैं जिस पर आप काम कर रहे हैं, तो आप इसे कैसे करेंगे? यदि आपके पास वर्कबुक में 20 शीट हैं, तो यह एक समय लेने वाली प्रक्रिया है। लेकिन EACH लूप के साथ, हम यह कार्य कर सकते हैं।

मेरे पास 5 शीट हैं, और मैं चाहता हूं कि कोड के नीचे शीट "मेन" को छोड़कर सभी शीट को छिपाना मेरे लिए कार्य करना होगा।

उप To_Hide_All_Sheet ()

वर्क्स के रूप में डिम डब्ल्यूएस

ActiveWorkbook.Worksheets में प्रत्येक डब्ल्यूएस के लिए

यदि Ws.Name "Main" है तो
Ws.Vigure = xlSheetVeryHidden End if

अगला Ws

अंत उप

उदाहरण # 2

यदि आप सभी छिपी हुई चादरों को खोलना चाहते हैं, तो नीचे दिया गया कोड आपके लिए काम करेगा।

उप To_UnHide_Specific_Sheet ()

वर्क्स के रूप में डिम डब्ल्यूएस

ActiveWorkbook.Worksheets में प्रत्येक डब्ल्यूएस के लिए

Ws.Vanish = xlSheetVouble

अगला Ws

अंत उप

# 3 टाइप करें - लूप करते समय

Do जबकि लूप कार्य करता है जबकि दी गई स्थिति TRUE है, और एक बार FALSE हो जाने के बाद, यह लूप बंद कर देगा। अन्य दो छोरों के विपरीत, दो बार लूप के अंत में स्थिति का परीक्षण करें, शुरुआत में नहीं।

मैं आपको Do जबकि लूप के साथ सीरियल नंबर डालने का उदाहरण दिखाऊंगा।

उप Do_While_Example ()

डिम आई अस इंटेगर

i = 1
करो जबकि मैं <11
कोशिकाएं (i, 1) ।Value = i
i = i + 1
लूप

अंत उप

ऊपर पाश चलेंगे, जबकि मैं कम से कम 11 है और सीरियल नंबर डालने रहता है। जिस क्षण मैं 11 से अधिक हो जाएगा, यह बंद हो जाएगा।

# 4 टाइप करें - लूप तक करें

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

उप Do_Until_Example ()

डिम आई अस इंटेगर

i = 1
करो जब तक मैं = 11
सेल (i, 1) .Value = i
i = i + 1
लूप

अंत उप

डू व्हेन एंड डू टू लूप के बीच एकमात्र अंतर वह ऑपरेटर है जिसे हम निर्दिष्ट करते हैं। डू में, जबकि हमने लूप को चलाने का उल्लेख किया है जबकि मैं (<), 11 से कम है, लेकिन लूप तक करने में, हमने लूप को चलाने का उल्लेख किया जब तक कि मैं 11 (=) के बराबर नहीं हो जाता।

याद रखने वाली चीज़ें

  • अधिक उन्नत एक्सेल VBA लूप उदाहरण है, लेकिन हम उनमें से प्रत्येक को एक अलग लेख में विस्तार से कवर करेंगे।
  • प्रत्येक लूप ऑब्जेक्ट चर के लिए है।
  • हालाँकि जब तक समान स्थिति का उल्लेख नहीं होता है, तब तक Do और Do करना बहुत महत्वपूर्ण है।
  • लूप्स बहुत महत्वपूर्ण अवधारणाएं हैं।

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