VBA का उपयोग करके Excel में दोहराए जाने वाले कार्यों को स्वचालित करना चाहते हैं? अपनी स्प्रैडशीट में कुशलता से डेटा में हेरफेर करने के लिए प्रत्येक लूप के लिए उपयोग करना सीखें।

लूप्स और वीबीए एक साथ चलते हैं, और अच्छे कारण के लिए भी। Microsoft Office ऑब्जेक्ट्स जैसे वर्कबुक, वर्कशीट और रेंज के साथ काम करते समय, लूप आपको उनमें से प्रत्येक के बीच सापेक्ष आसानी से टॉगल करने में मदद कर सकते हैं।

जबकि कमोबेश सभी VBA लूप ऑब्जेक्ट्स के साथ अच्छी तरह से काम करते हैं, "प्रत्येक के लिए" लूप ऑब्जेक्ट संग्रह के साथ काम करने के लिए सबसे अच्छे विकल्पों में से एक है। यदि आप एक्सेल वीबीए के लिए नए हैं और प्रत्येक लूप के लिए मास्टर करना चाहते हैं, तो आप इनमें से कुछ उदाहरणों से जल्दी से सीख सकते हैं। यहां आपको इस सर्वोत्कृष्ट पाश के बारे में जानने की जरूरत है।

प्रत्येक लूप के सिंटैक्स के लिए

प्रत्येक लूप सिंटैक्स के लिए एक्सेल VBA में लूप के लिए सामान्य के समान है। यहाँ वाक्य रचना है:

Object_collection में प्रत्येक चर_नाम के लिए

[कथन]

[कथन]

[कथन]

अगला चर_नाम

लूप "प्रत्येक के लिए" कीवर्ड से शुरू होता है; आप ऑब्जेक्ट संग्रह के बाद किसी भी चर नाम का उपयोग कर सकते हैं। प्रत्येक लूप के लिए ऑब्जेक्ट सेल, रेंज, शीट और यहां तक ​​कि वर्कबुक भी हो सकते हैं। ऐसी है इस पाश की शोभा; यह आपको विभिन्न एक्सेल संग्रहों के साथ काम करने की सुविधा देता है।

लूप प्रत्येक संग्रह मान के माध्यम से चक्र करता है और परिभाषित चर नाम में संदर्भ संग्रहीत करता है। निष्पादन के बाद, VBA लूप के भीतर संग्रहीत कथनों को निष्पादित करता है और संग्रह में अगली वस्तु ( अगला कीवर्ड यहाँ मददगार है)। आइए एक बुनियादी उदाहरण के साथ कोड संरचना को समझते हैं।

एक्सेल वीबीए में प्रत्येक लूप के लिए कैसे उपयोग करें

मान लीजिए कि आप कक्ष A1 से A10 में कोई संख्या प्रिंट करना चाहते हैं। सबसे अच्छा तरीका प्रत्येक लूप के लिए रेंज फ़ंक्शन के साथ उपयोग करना है और कोड को आवश्यक कार्य करने दें। यहां बताया गया है कि आप यह सरल कार्य कैसे कर सकते हैं:

  1. दबाकर VBA कोड संपादक खोलें Alt + F11.
  2. क्लिक करके एक मॉड्यूल डालें मापांक के भीतर विकल्प डालना टैब।
  3. कोड संपादक मॉड्यूल विंडो में उप () कमांड का उपयोग करके एक उप-दिनचर्या बनाएं। उप-दिनचर्या को एक सार्थक नाम देना सुनिश्चित करें। इस उदाहरण के लिए, आप नाम का उपयोग कर सकते हैं for_each_loop.

अब जब मूल बातें खत्म हो गई हैं, तो कोड लिखना शुरू करने का समय आ गया है। उप-दिनचर्या के भीतर, निम्न आदेशों में टाइप करें:

मंद कोशिका जैसा श्रेणी

प्रत्येक कोशिका के लिए में चादरें("शीट1")।श्रेणी("ए1:ए10")

सेल.वैल्यू = 10

अगली सेल

जब कोड निष्पादित होता है, तो सी चर A1 के मान को संग्रहीत करेगा। अगला, जैसा कि यह लूप के भीतर स्टेटमेंट पर जाता है, यह कमांड का मूल्यांकन करता है और परिभाषित सेल में 10 का मान इनपुट करता है, यानी सेल A1।

अंत में, जैसे ही यह नेक्स्ट कीवर्ड पर जाता है, यह अगले मान, यानी, सेल A2 पर चला जाता है। लूप सेल A10 तक पहुंचने तक चलता है। यह अंतिम आउटपुट है:

ऑब्जेक्ट्स के साथ लूप का उपयोग करना: सेल, शीट्स और वर्कबुक्स

एक्सेल के तीन मुख्य ऑब्जेक्ट प्रकार हैं जिनके साथ आप नियमित रूप से काम करते हैं। ये सेल, शीट और वर्कबुक हैं। यहां बताया गया है कि आप तीनों ऑब्जेक्ट प्रकारों के साथ लूप का उपयोग कैसे कर सकते हैं।

सेल और लूप के साथ मिलकर काम करना

मान लीजिए कि आप पत्रक1 में कक्षों की श्रेणी में एक मान और कुछ स्वरूपण शर्तें जोड़ना चाहते हैं। पहले चरण के रूप में, आपको लूप के भीतर शर्तों को परिभाषित करने की आवश्यकता है, इसके बाद स्वरूपण आदेश।

एक सब-रूटीन में निम्न कोड टाइप करें।

उप for_each_loop ()

मंद सी जैसा श्रेणी

शीट्स में प्रत्येक सी के लिए ("शीट1")।श्रेणी("ए1:ए10")

साथ सी

मूल्य = 10

.फ़ॉन्ट। रंग = vbRed

.फ़ॉन्ट। बोल्ड = सत्य

.फ़ॉन्ट। स्ट्राइकथ्रू = सत्य

अंतसाथ

अगला सी

अंत विषय

साथ एक विशिष्ट वस्तु के साथ कई कार्य करते समय फ़ंक्शन उपयोगी होता है। चूँकि आप c चर के साथ कार्यों की एक श्रृंखला करना चाहते हैं, आप उन सभी को फ़ंक्शन के साथ..end का उपयोग करके जोड़ सकते हैं।

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

शीट्स को नियंत्रित करने के लिए लूप का उपयोग करना

उपरोक्त उदाहरण के समान, आप शीट्स को नियंत्रित करने के लिए प्रत्येक लूप के लिए उपयोग कर सकते हैं। वीबीए का उपयोग कर शीट 1 के नाम को शीट 3 में बदलने के बारे में कैसे?

आप वीबीए का उपयोग कर एक्सेल में मौजूदा वर्कशीट का नाम बदलने के लिए निम्न कोड का उपयोग कर सकते हैं:

उप for_each_loop_sheets ()

के लिएप्रत्येकश्टमेंयह वर्कबुकचादरें

अगर एसटी। नाम = "शीट1" तब

श्ट। नाम = "शीट3"

अंतअगर

अगला श्ट

अंत विषय

कार्यपुस्तिका के भीतर प्रत्येक पत्रक के माध्यम से कोड लूप करता है और प्रत्येक पत्रक के नाम की जांच करता है। यदि इसका सामना शीट1 नाम से होता है, तो यह इसे शीट3 में बदल देता है। यह कार्यपुस्तिका के भीतर शेष शीट्स, यदि कोई हो, के माध्यम से आगे बढ़ता है। एक बार जब कोड निष्पादन अंतिम शीट पर पहुंच जाता है, तो यह लूप और सब-रूटीन से बाहर निकल जाता है।

कुछ अन्य सामान्य उपयोगों में से, आप कर सकते हैं VBA का उपयोग करके कई कार्यपत्रकों को मर्ज करें और लूप का उपयोग करके सामग्री को एक शीट में अपडेट करें।

लूप के साथ कार्यपुस्तिकाओं में टॉगल करें

अंत में, आप प्रत्येक लूप के लिए विभिन्न कार्यपुस्तिकाओं के माध्यम से टॉगल करने और विशिष्ट कार्य करने के लिए उपयोग कर सकते हैं। आइए इस फ़ंक्शन को एक उदाहरण के साथ प्रदर्शित करें।

आप तीन नई कार्यपुस्तिकाओं को जोड़ने और सभी खुली हुई पुस्तकों को एक साथ बंद करने के लिए VBA कमांड का उपयोग कर सकते हैं। यहां बताया गया है कि आप इसे कैसे कर सकते हैं:

सब लूप_रेकबुक ()

मंद वर्कबुक जैसा कार्यपुस्तिका

कार्यपुस्तिकाएं।जोड़ना

कार्यपुस्तिकाएं।जोड़ना

कार्यपुस्तिकाएं।जोड़ना

कार्यपुस्तिकाओं में प्रत्येक कार्यपुस्तिका के लिए

wrkbook।बंद करना

अगली वर्कबुक

अंत विषय

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

चूंकि लूप के कई उपयोग हैं, आप भी कर सकते हैं एकाधिक कार्यपुस्तिकाओं से डेटा को एकल कार्यपुस्तिका में समेकित करें.

लूप के साथ नेस्टेड IF स्टेटमेंट का उपयोग करना

उपरोक्त उदाहरण की तरह, आप विशिष्ट स्थितियों की जांच के लिए लूप के भीतर IF स्टेटमेंट का उपयोग कर सकते हैं। आइए सेल के मूल्यों के आधार पर सेल की पृष्ठभूमि का रंग बदलें।

कक्ष A1:A20 में कुछ यादृच्छिक संख्याएँ हैं। आप रेंज में प्रत्येक दिए गए सेल के माध्यम से साइकिल चलाने के लिए एक लूप लिख सकते हैं; यदि सेल का मान 10 से कम है, तो सेल का रंग बदलकर लाल होना चाहिए। यदि सेल का मान 10 से अधिक है, तो उसे हरा होना चाहिए। इस उद्देश्य के लिए निम्नलिखित कोड का प्रयोग करें:

उप लूप_w_if ()

मंद सी जैसा श्रेणी

शीट्स में प्रत्येक सी के लिए ("शीट4")।श्रेणी("ए1:ए20")

अगरसी।कीमत < 10 तब

सी। आंतरिक भाग। कलरइंडेक्स = 3

अन्य: सी। आंतरिक भाग। कलरइंडेक्स = 4

अंतअगर

अगला सी

अंत विषय

यह आउटपुट जैसा दिखता है:

एक्सेल वीबीए में लूप्स का उपयोग करना

एक्सेल वीबीए केवल प्रत्येक लूप के लिए प्रतिबंधित नहीं है। विभिन्न प्रकार के सहायक लूप हैं जो आपको विभिन्न कार्यों को आसानी से करने देते हैं। सांसारिक, मैन्युअल कार्यों को अलविदा कहें, क्योंकि VBA के लूप जैसे for लूप, करते हैं, और तब तक करते हैं जब तक लूप आपके जीवन को आसान बनाने के लिए कदम नहीं उठाते।