यह ट्यूटोरियल आपको VBA में प्रत्येक लूप के लिए उपयोग करने के उदाहरण दिखाएगा। सामान्य रूप से लूप के बारे में अधिक जानने के लिए यहां क्लिक करें।
प्रत्येक लूप के लिए
प्रत्येक लूप के लिए आपको लूप करने की अनुमति मिलती है प्रत्येक संग्रह में वस्तु:
- एक श्रेणी में सभी सेल
- एक कार्यपुस्तिका में सभी कार्यपत्रक
- सभी खुली कार्यपुस्तिका
- वर्कशीट में सभी आकार
- एक सरणी में सभी आइटम
- और अधिक!
प्रत्येक के लिए: मूल उदाहरण
ये उदाहरण प्रदर्शित करेंगे कि विभिन्न प्रकार की वस्तुओं के माध्यम से प्रत्येक लूप के लिए लूप को कैसे सेट किया जाए।
कोशिकाओं के माध्यम से लूप
यह प्रक्रिया A1:A10 की श्रेणी में प्रत्येक सेल के माध्यम से लूप करेगी, सेल को इसके दाहिनी ओर अपने बराबर सेट करेगी।
12345678 | उप ForEachCell ()रेंज के रूप में मंद सेलशीट्स में प्रत्येक सेल के लिए ("शीट 1")। रेंज ("ए 1: ए 10")सेल.ऑफ़सेट(0, 1).वैल्यू = सेल.वैल्यूअगली सेलअंत उप |
शीट्स के माध्यम से लूप
यह प्रक्रिया कार्यपुस्तिका में प्रत्येक शीट के माध्यम से लूप करेगी, प्रत्येक शीट को खोल देगी।
12345678 | सब फॉरएचशीट्स ()वर्कशीट के रूप में डिम WSशीट्स में प्रत्येक ws के लिएws.दृश्यमान = सत्यअगली शीटअंत उप |
कार्यपुस्तिकाओं के माध्यम से लूप
यह प्रक्रिया प्रत्येक कार्यपुस्तिका के माध्यम से लूप करेगी, प्रत्येक को बंद कर देगी।
12345678 | उप ForEachWorkbooks ()कार्यपुस्तिका के रूप में मंद wbकार्यपुस्तिकाओं में प्रत्येक wb के लिएडब्ल्यूबी.बंदअगला डब्ल्यूबीअंत उप |
आकार के माध्यम से लूप
यह प्रक्रिया पत्रक1 में प्रत्येक आकृति के माध्यम से लूप करेगी, प्रत्येक को हटाकर।
12345678 | उप ForEachShape ()आकार के रूप में मंद एसपीशीट्स में प्रत्येक एसपी के लिए ("शीट 1")। आकारएसपी.डिलीटअगला एसपीअंत उप |
चार्ट के माध्यम से लूप
यह प्रक्रिया पत्रक1 में प्रत्येक चार्ट के माध्यम से लूप करेगी, प्रत्येक को हटाकर।
12345678 | उप ForEachCharts ()चार्टऑब्जेक्ट के रूप में मंद चैटशीट्स में प्रत्येक चैट के लिए ("शीट 1")। चार्टऑब्जेक्ट्सcht.हटाएंअगली बातचीतअंत उप |
PivotTables के माध्यम से लूप
यह प्रक्रिया पत्रक1 में प्रत्येक PivotTable के माध्यम से लूप करेगी, प्रत्येक को साफ़ करेगी
12345678 | उप ForEachPivotTables ()पिवट टेबल के रूप में डिम प्राइवेटशीट्स में प्रत्येक प्राइवेट के लिए ("शीट 1")। पिवोटटेबल्सप्राइवेट.क्लियरटेबलअगला प्राइवेटअंत उप |
तालिकाओं के माध्यम से लूप
यह प्रक्रिया शीट1 में प्रत्येक तालिका के माध्यम से लूप करेगी, प्रत्येक को हटा देगी।
12345678 | उप ForEachTables ()ListObject के रूप में मंद tblशीट्स में प्रत्येक टीबीएल के लिए ("शीट 1")। लिस्टऑब्जेक्ट्सटीबीएल.हटाएंअगला टीबीएलअंत उप |
सरणी में आइटम के माध्यम से लूप
यह प्रक्रिया एक ऐरे में प्रत्येक आइटम के माध्यम से लूप करेगी, प्रत्येक मान को एक संदेश बॉक्स में प्रदर्शित करेगी,
12345678910 | उप ForEachItemInArray ()डिम एररवैरिएंट के रूप में मूल्यडिम आइटम वैरिएंट के रूप मेंarrValue = ऐरे ("आइटम 1", "आइटम 2", "आइटम 3")arrValue में प्रत्येक आइटम के लिएसंदेशबॉक्स आइटमअगला आइटमअंत उप |
संख्याओं के माध्यम से लूप
यह प्रक्रिया एक ऐरे में प्रत्येक संख्या के माध्यम से लूप करेगी, प्रत्येक मान को एक संदेश बॉक्स में प्रदर्शित करेगी,
12345678910111213 | उप ForEachNumberInNumbers ()मंद arrNumber(1 से 3) पूर्णांक के रूप मेंडिम संख्या वैरिएंट के रूप मेंएआरनंबर(1) = 10एआरनंबर(2) = 20गिरफ्तारी संख्या(3) = 30प्रत्येक संख्या के लिए arrNumber . मेंसंदेशबॉक्स संख्याअगला अंकअंत उप |
प्रत्येक लूप बिल्डर के लिए
इस लेख में उदाहरण के साथ बनाए गए थे लूप बिल्डर हमारे में वीबीए ऐड-इन: ऑटोमैक्रो.
NS लूप बिल्डर वस्तुओं के माध्यम से लूप को कोड उत्पन्न करना बहुत आसान बनाता है। ऑटोमैक्रो कई अन्य भी शामिल हैं कोड जेनरेटर, एक व्यापक कोड लाइब्रेरी, और शक्तिशाली कोडिंग टूल्स.
प्रत्येक के लिए - यदि
यदि ऑब्जेक्ट कुछ मानदंडों को पूरा करते हैं, तो परीक्षण करने के लिए आप लूप्स के भीतर इफ स्टेटमेंट्स का उपयोग कर सकते हैं, केवल उन ऑब्जेक्ट्स पर कार्रवाई कर सकते हैं जो मानदंडों को पूरा करते हैं। यहां एक श्रेणी में प्रत्येक सेल के माध्यम से लूपिंग का एक उदाहरण दिया गया है:
रेंज में प्रत्येक सेल के लिए - यदि
1234567891011121314 | उप अगर_लूप ()रेंज के रूप में मंद सेलरेंज में प्रत्येक सेल के लिए ("A2:A6")यदि सेल.वैल्यू > 0 तोसेल। ऑफसेट (0, 1)। मान = "सकारात्मक"ElseIf Cell.Value <0 फिरसेल। ऑफसेट (0, 1)। मान = "नकारात्मक"अन्यथासेल। ऑफसेट (0, 1)। मान = "शून्य"अगर अंतअगली सेलअंत उप |
प्रत्येक सामान्य उदाहरण के लिए
सभी कार्यपुस्तिकाएं बंद करें
यह प्रक्रिया परिवर्तनों को सहेजते हुए सभी खुली कार्यपुस्तिकाओं को बंद कर देगी।
123456789 | उप CloseAllWorkbooks ()कार्यपुस्तिका के रूप में मंद wbकार्यपुस्तिकाओं में प्रत्येक wb के लिएwb.सेव चेंज बंद करें:=सचअगला डब्ल्यूबीअंत उप |
सभी पत्रक छुपाएं
यह प्रक्रिया सभी कार्यपत्रकों को छिपा देगी।
12345678 | सब हाइडऑलशीट्स ()वर्कशीट के रूप में डिम WSशीट्स में प्रत्येक ws के लिएws.Visible = xlSheetHiddenअगला wsअंत उप |
सभी पत्रक दिखाएँ
यह प्रक्रिया सभी कार्यपत्रकों को प्रदर्शित करेगी।
12345678 | सब अनहाइड ऑलशीट्स ()वर्कशीट के रूप में डिम WSशीट्स में प्रत्येक ws के लिएws.Visible = xlSheetVisibleअगला wsअंत उप |
सभी शीट्स को सुरक्षित रखें
यह प्रक्रिया सभी कार्यपत्रकों की सुरक्षा करेगी।
12345678 | सब प्रोटेक्ट ऑलशीट्स ()वर्कशीट के रूप में डिम WSशीट्स में प्रत्येक ws के लिएws.पासवर्ड सुरक्षित करें:="…"अगला wsअंत उप |
सभी शीट्स को असुरक्षित करें
यह प्रक्रिया सभी कार्यपत्रकों को असुरक्षित कर देगी।
12345678 | सब अनप्रोटेक्ट ऑलशीट्स ()वर्कशीट के रूप में डिम WSशीट्स में प्रत्येक ws के लिएws.असुरक्षित पासवर्ड:="…"अगला wsअंत उप |
सभी कार्यपत्रकों पर सभी आकृतियाँ हटाएं
यह कार्यविधि किसी कार्यपुस्तिका में सभी आकृतियों को हटा देगी।
123456789101112 | उप DeleteAllShapesOnAllWorksheets ()वर्कशीट के रूप में मंद शीटआकार के रूप में मंद एसपीशीट्स में प्रत्येक ws के लिएWs.Shapes में प्रत्येक Shp के लिएएसपी.डिलीटअगला एसपीअगला wsअंत उप |
सभी पिवट टेबल को रिफ्रेश करें
यह प्रक्रिया एक पत्रक पर सभी PivotTables को ताज़ा करेगी।
12345678 | सब रिफ्रेशAllPivotTables ()पिवट टेबल के रूप में डिम प्राइवेटशीट्स में प्रत्येक प्राइवेट के लिए ("शीट 1")। पिवोटटेबल्सप्राइवेट.रीफ्रेशटेबलअगला प्राइवेटअंत उप |
एक्सेस वीबीए में प्रत्येक के लिए उपयोग करना
प्रत्येक लूप के लिए एक्सेस वीबीए में उसी तरह काम करता है जैसे एक्सेल वीबीए में होता है। निम्न उदाहरण वर्तमान डेटाबेस में सभी तालिकाओं को हटा देगा।
123456789 | सब रिमूव ऑलटेबल्स ()TableDef के रूप में मंद tdfडेटाबेस के रूप में मंद डीबीएससेट डीबीएस = करंटडीबीप्रत्येक tdf के लिए dbs.TableDefs मेंDoCmd.DeleteObject tdf.Nameकुंडलीडीबीएस सेट करें = कुछ भी नहींअंत उप |