यह ट्यूटोरियल आपको दिखाएगा कि वीबीए में नेस्टेड इफ स्टेटमेंट का उपयोग कैसे करें
यदि कथन आपको VBA में एक शर्त के लिए परीक्षण करने की अनुमति देते हैं, यह देखने के लिए कि क्या स्थिति सही है या गलत है, और उत्तर के आधार पर, कोड सही कथन या गलत कथन की दिशा में आगे बढ़ेगा।
एक सिंगल आईएफ स्टेटमेंट
1234567891011 | उप परीक्षणअगरमंद x पूर्णांक के रूप मेंएक्स = 10अगर एक्स = 10 तो'यदि x 10 है, तो शर्त सत्य है'MsgBox x 10 है"अन्यथा'यदि x 10 नहीं है, तो शर्त गलत है'संदेश बॉक्स "x 10 नहीं है"अगर अंतअंत उप |
नेस्टेड IFs समझाया
एक नेस्टेड अगर आपको मूल इफ के प्रत्येक सही और / या गलत बयान के अंदर कई शर्तें रखने की अनुमति देता है।
1234567891011121314151617181920212223242526 | उप टेस्टनेस्टेडआईएफ ()मंद x पूर्णांक के रूप मेंमंद y पूर्णांक के रूप मेंपूर्णांक के रूप में मंद zएक्स = 10वाई = 9जेड = 8अगर एक्स = 10 तो'यदि x 10 है, तो शर्त सत्य है इसलिए y के लिए परीक्षण करें'यदि y = 8 तोसंदेश बॉक्स "y 9 है"अन्यथा'यदि y 10 नहीं है, तो शर्त गलत है'संदेश बॉक्स "y 9 नहीं है"अगर अंतअन्यथा'यदि x 10 नहीं है तो स्थिति गलत है, तो चलिए' z . के लिए परीक्षण करते हैंयदि z = 8तोसंदेश बॉक्स "जेड 8 है"अन्यथा'यदि z 8 नहीं है, तो शर्त गलत है'Msgbox "z 10 नहीं है"अगर अंत'दूसरा छोर अगर मूल को बंद करने के लिए आवश्यक है ifअगर अंतअंत उप |
जब आप इसे लिखते हैं तो अपने कोड को इंडेंट करना हमेशा अच्छा अभ्यास है क्योंकि यह कोड को पढ़ने और अनुसरण करने में आसान बनाता है जब आपको किसी चरण में उस पर वापस आना होता है, या जब किसी अन्य प्रोग्रामर को इसे पढ़ना होता है।
हम एक उपयोगकर्ता द्वारा डिज़ाइन किया गया फ़ंक्शन (UDF) भी बना सकते हैं और पैरामीटर का उपयोग करके Excel से कुछ कक्षों के मानों को फ़ंक्शन में कॉल कर सकते हैं।
1234567891011121314151617181920 | फ़ंक्शन GetIf (x पूर्णांक के रूप में, y पूर्णांक के रूप में, z पूर्णांक के रूप में) स्ट्रिंग के रूप मेंअगर एक्स = 10 तो'यदि x 10 है, तो शर्त सत्य है इसलिए y के लिए परीक्षण करें'यदि y = 8 तोगेटआईएफ = "वाई 9 है"अन्यथा'यदि y 10 नहीं है, तो शर्त गलत है'गेटआईएफ = "वाई 9 नहीं है"अगर अंतअन्यथा'यदि x 10 नहीं है तो स्थिति गलत है, तो चलिए' z . के लिए परीक्षण करते हैंअगर z = 8 तोगेटआईएफ = "जेड 8 है"अन्यथा'यदि z 8 नहीं है, तो शर्त गलत है'गेटआईएफ = "जेड 10 नहीं है"अगर अंत'दूसरा छोर अगर मूल को बंद करने के लिए आवश्यक है ifअगर अंतअंत समारोह |
नेस्टेड अगर व्यावहारिक उदाहरण
निम्नलिखित फ़ंक्शन पर विचार करें:
12345678910111213141516171819202122 | समारोह GetDiscount(dblPrice डबल के रूप में) डबल के रूप मेंअगर dblPrice>= 1000 तो'यदि कीमत 1000 से अधिक है, तो छूट प्रदान करें'अगर dblPrice>= 2000 तो'2000 से ज्यादा हो तो 10% की छूट दें'GetDiscount = dblPrice * 0.1अन्यथा'अन्यथा दें 5% की छूट'GetDiscount = dblPrice * 0.05अगर अंत'यदि कीमत 1000 से अधिक नहीं है'अन्यथा'500 से ज्यादा होने पर 2.5% की छूट दें'अगर dblPrice>= 500 तोGetDiscount = dblPrice * 0.025अन्यथा'अन्यथा कोई छूट नहीं'GetDiscount = 0अगर अंत'एक और अंत यदि मूल को बंद करने की आवश्यकता है ifअगर अंतअंत समारोह |
एक्सेल शीट में इस फ़ंक्शन का उपयोग करके, हम ऑर्डर के लिए कुल मूल्य देखने के लिए परीक्षण कर सकते हैं, और उस कुल के आधार पर विभिन्न छूट लागू कर सकते हैं।
वीबीए प्रोग्रामिंग | कोड जेनरेटर आपके लिए काम करता है!
ElseIf . का उपयोग करना
ElseIf हमें आपके कोड को सरल बनाने में सक्षम बनाता है क्योंकि यह केवल दूसरे स्टेटमेंट में नीचे चला जाता है यदि पहला स्टेटमेंट गलत देता है।
12345678910111213141516 | समारोह GetDiscount(dblPrice डबल के रूप में) डबल के रूप में'कोड लिखने में कटौती करने के लिए अन्य का उपयोग करें'अगर dblPrice>= 2000 तोGetDiscount = dblPrice * 0.1वरना अगर dblPrice>= 1000 तोGetDiscount = dblPrice * 0.075वरना अगर dblPrice>= 500 तोGetDiscount = dblPrice * 0.05वरना अगर dblPrice>= 200 तोGetDiscount = dblPrice * 0.025वरना अगर dblPrice>= १०० तोGetDiscount = dblPrice * 0.01अन्यथागेटडिस्काउंट = 0अगर अंतअंत समारोह |
केस स्टेटमेंट का उपयोग करना
हम उसी प्रभाव को प्राप्त करने के लिए केस स्टेटमेंट का भी उपयोग कर सकते हैं।
1234567891011121314151617 | समारोह GetDiscount(dblPrice डबल के रूप में) डबल के रूप मेंकेस का चयन करें dblPrice'इस केस स्टेटमेंट में 6 अलग-अलग छूट स्तर हैं'केस है>= 2000GetDiscount = dblPrice * 0.1केस है>= 1000GetDiscount = dblPrice * 0.075केस है>= 500GetDiscount = dblPrice * 0.05केस है>= 200GetDiscount = dblPrice * 0.025केस है>= 100GetDiscount = dblPrice * 0.01मामला अन्यGetDiscount = 0अंत चयनअंत समारोह |