VBA लॉजिकल Operaटोर: एक्सेल VBA में AND, OR, NOT, IF NOT
⚡ स्मार्ट सारांश
VBA लॉजिकल Operaकई स्थितियों को मिलाकर एक ही परिणाम मिलता है: सही या गलत। यह पृष्ठ AND, OR और NOT को उदाहरणों सहित समझाता है, जिनमें कमांड बटन का उपयोग करके चलाया जा सकता है। इसमें एक पूर्ण सत्य सारणी और कम ज्ञात Xor, Eqv और Imp ऑपरेटर भी शामिल हैं।

एक्सेल VBA लॉजिकल Operaमरोड़
मान लीजिए कि आप किसी ग्राहक के ऑर्डर को प्रोसेस करना चाहते हैं। इसके लिए, आपको सबसे पहले यह देखना होगा कि ऑर्डर किया गया उत्पाद मौजूद है या नहीं। अगर वह मौजूद है, तो आप यह भी जांचना चाहेंगे कि उपलब्ध मात्रा पर्याप्त है या नहीं। ऐसे मामलों में लॉजिकल ऑपरेटर काम आते हैं। लॉजिकल ऑपरेटर का इस्तेमाल एक से ज़्यादा शर्तों का मूल्यांकन करने के लिए किया जाता है।
प्रत्येक स्थिति अपने आप में निर्मित होती है तुलना ऑपरेटरों और यह True या False लौटाता है। फिर एक लॉजिकल ऑपरेटर उन परिणामों को मिलाकर एक अंतिम उत्तर तैयार करता है।
मुख्य Excel VBA तार्किक ऑपरेटर AND, OR, NOT नीचे दी गई तालिका में सूचीबद्ध हैं:
| एस / एन | Operaटो | विवरण | उदाहरण | उत्पादन |
|---|---|---|---|---|
| 1 | और | AND: इसका उपयोग एक से अधिक शर्तों को संयोजित करने के लिए किया जाता है। यदि सभी शर्तें सत्य हैं, तो AND का मान सत्य होता है। यदि कोई भी शर्त असत्य है, तो AND का मान असत्य होता है | यदि (1 = 1) और (0 = 1) तो | असत्य |
| 2 | OR | OR: इसका उपयोग एक से अधिक शर्तों को संयोजित करने के लिए किया जाता है। यदि कोई भी शर्त सत्य है, तो OR सत्य लौटाता है। यदि वे सभी असत्य हैं, तो OR असत्य लौटाता है | यदि (1 = 1) या (5 = 0) तो | <strong>उद्देश्य</strong> |
| 3 | नहीं | नोट: यह एक व्युत्क्रम फ़ंक्शन की तरह काम करता है। यदि शर्त सत्य है, तो यह गलत लौटाता है, और यदि शर्त गलत है, तो यह सत्य लौटाता है। | यदि नहीं (0 = 0) तो | असत्य |
ऊपर दिए गए तीनों विवरणों को इनपुट और परिणामों के एक ही ग्रिड के रूप में याद रखना आसान है।
VBA लॉजिकल के लिए सत्य सारणी Operaमरोड़
एक सत्य सारणी में इनपुट के सभी संयोजन और प्रत्येक ऑपरेटर द्वारा लौटाए गए परिणाम सूचीबद्ध होते हैं। इसे एक बार पढ़ने से बाद में लिखी जाने वाली किसी भी शर्त में अनुमान लगाने की आवश्यकता समाप्त हो जाती है।
| शर्त ए | शर्त बी | ए और बी | ए या बी | नहीं ए |
|---|---|---|---|---|
| यह सच है | यह सच है | यह सच है | यह सच है | झूठा |
| यह सच है | झूठा | झूठा | यह सच है | झूठा |
| झूठा | यह सच है | झूठा | यह सच है | यह सच है |
| झूठा | झूठा | झूठा | झूठा | यह सच है |
दो पैटर्न याद रखने लायक हैं। और यह चार पंक्तियों में से केवल एक पंक्ति पर ही सही परिणाम देता है, इसलिए यह चयन को सीमित कर देता है। OR केवल एक पंक्ति पर False परिणाम उत्पन्न होता है, इसलिए यह एक पंक्ति को चौड़ा कर देता है। नहीं यह दो के बजाय एक ही शर्त लेता है, इसलिए इसका अपना एक अलग कॉलम है।
VBA लॉजिकल Operaटॉर्स उदाहरण स्रोत Code
सरलता के लिए, हम हार्ड कोडेड संख्याओं की तुलना करेंगे।
“सम्मिलित करें विकल्प” से शीट में ActiveX बटन जोड़ें।
नीचे दी गई छवि में दिखाए अनुसार गुण सेट करें

निम्न तालिका उन गुणों को दर्शाती है जिन्हें आपको बदलने की आवश्यकता है और उन मानों को भी दर्शाती है जिन्हें आपको अपडेट करने की आवश्यकता है।
| एस / एन | नियंत्रण | संपत्ति | वैल्यू |
|---|---|---|---|
| 1 | कमांडबटन1 | नाम | btnAND |
| शीर्षक | और Operator (1 = 1) और (0 = 0) | ||
| 2 | कमांडबटन2 | नाम | बीटीएनओआर |
| शीर्षक | OR Operaटोर (1 = 1) या (5 = 0) | ||
| 3 | कमांडबटन3 | नाम | btnनहीं |
| शीर्षक | नहीं Operaनहीं (0 = 0) |
btnAND_Click में निम्न कोड जोड़ें
Private Sub btnAND_Click() If (1 = 1) And (0 = 0) Then MsgBox "AND evaluated to TRUE", vbOKOnly, "AND operator" Else MsgBox "AND evaluated to FALSE", vbOKOnly, "AND operator" End If End Sub
VBA यदि AND Operaटो
- “यदि (1 = 1) और (0 = 0) तो” if कथन दो स्थितियों (1 = 1) और (0 = 0) को संयोजित करने के लिए AND तार्किक ऑपरेटर का उपयोग करता है। यदि दोनों स्थितियाँ सत्य हैं, तो 'Else' कीवर्ड के ऊपर का कोड निष्पादित होता है। यदि दोनों स्थितियाँ सत्य नहीं हैं, तो 'Else' कीवर्ड के नीचे का कोड निष्पादित होता है।
यहां दोनों शर्तें सही हैं, इसलिए बटन पर क्लिक करने से "AND का मान TRUE" प्रदर्शित होता है।
btnOR_Click में निम्न कोड जोड़ें
Private Sub btnOR_Click() If (1 = 1) Or (5 = 0) Then MsgBox "OR evaluated to TRUE", vbOKOnly, "OR operator" Else MsgBox "OR evaluated to FALSE", vbOKOnly, "OR operator" End If End Sub
VBA यदि OR Operaटो
- “यदि (1 = 1) या (5 = 0) तो” if स्टेटमेंट दो शर्तों (1 = 1) या (5 = 0) को संयोजित करने के लिए OR लॉजिकल ऑपरेटर का उपयोग करता है। यदि इनमें से कोई भी शर्त सत्य है, तो Els कीवर्ड के ऊपर का कोड निष्पादित होता है। यदि दोनों शर्तें असत्य हैं, तो Els कीवर्ड के नीचे का कोड निष्पादित होता है।
पहली शर्त सत्य है और दूसरी असत्य है, इसलिए OR अभी भी सत्य लौटाता है और संदेश में लिखा होता है "OR का मूल्यांकन सत्य हुआ"।
btnNOT_Click में निम्न कोड जोड़ें
Private Sub btnNOT_Click() If Not (0 = 0) Then MsgBox "NOT evaluated to TRUE", vbOKOnly, "NOT operator" Else MsgBox "NOT evaluated to FALSE", vbOKOnly, "NOT operator" End If End Sub
VBA यदि नहीं Operaटो
- “यदि नहीं (0 = 0) तो” VBA में if Not फ़ंक्शन, if स्टेटमेंट की शर्त के परिणाम को उलटने के लिए NOT लॉजिकल ऑपरेटर का उपयोग करता है। आंतरिक शर्त (0 = 0) सत्य है, इसलिए Not इसे असत्य में बदल देता है और 'Else' कीवर्ड के नीचे का कोड निष्पादित होता है। यदि आंतरिक शर्त असत्य होती, तो Not इसे सत्य बना देता और 'Else' के ऊपर का कोड चलता।
ये तीनों बटन एक निश्चित मान का परीक्षण करते हैं। वर्कशीट से वास्तविक स्थितियाँ पढ़ी जाती हैं और ऑपरेटरों के दोनों प्रकारों को मिलाया जाता है।
तार्किक और तुलनात्मक विधियों को कैसे संयोजित करें Operaमरोड़
एक प्रोडक्शन मैक्रो शायद ही कभी हार्ड-कोडेड नंबर की जांच करता है। यह एक मान पढ़ता है, उसकी तुलना करता है, और उन तुलनाओं को मिलाकर एक निर्णय लेता है। नीचे दिया गया मैक्रो किसी ऑर्डर को तभी स्वीकृत करता है जब उत्पाद मौजूद हो, मात्रा पर्याप्त हो, और ग्राहक खाता होल्ड पर न हो।
Sub ApproveOrder() Dim QtyOnHand As Long Dim QtyOrdered As Long Dim OnHold As Boolean QtyOnHand = Sheet1.Range("B2").Value QtyOrdered = Sheet1.Range("B3").Value OnHold = Sheet1.Range("B4").Value ' All three parts must hold for the order to pass If (QtyOrdered > 0) And (QtyOnHand >= QtyOrdered) And Not OnHold Then Sheet1.Range("B5").Value = "Approved" Else Sheet1.Range("B5").Value = "On hold" End If End Sub
तीन नियम संयुक्त स्थिति को पठनीय और सही बनाए रखते हैं।
- प्रत्येक तुलना को कोष्ठक में रखें: VBA तार्किक ऑपरेटरों से पहले तुलनात्मक ऑपरेटरों का मूल्यांकन करता है, लेकिन कोष्ठक समूह बनाते हैं।ping यह स्पष्ट है और बाद में स्थिति बिगड़ने पर गलती होने से बचाता है।
- 'और' को 'या' पर प्राथमिकता देने का ध्यान रखें: ए या बी और सी इस प्रकार पढ़ा जाता है ए या (बी और सी)अगर आपका मतलब यह था (ए या बी) और सीकोष्ठक अनिवार्य हैं।
- किसी बूलियन पर लागू न करें, किसी संख्या पर लागू न करें: होल्ड पर नहीं स्वाभाविक लगता है। बचें। 5 नहींक्योंकि Not संख्याओं पर बिटवाइज़ ऑपरेशन करता है और False के बजाय -6 लौटाता है।
⚠️ चेतावनी: VBA शॉर्ट-सर्किट नहीं करता है। यदि (ws कुछ भी नहीं है) या (ws.Name = “डेटा”) तोदूसरा भाग तब भी चलता है जब पहला सही होता है, जिससे रन-टाइम त्रुटि 91 उत्पन्न होती है। ऐसे गार्ड को नेस्टेड इफ स्टेटमेंट में विभाजित करें।
Xor, Eqv, और Imp OperaVBA में टॉर्स
AND, OR और NOT लगभग हर रोजमर्रा की स्थिति को कवर करते हैं, लेकिन VBA तीन और तार्किक ऑपरेटर प्रदान करता है जो कभी-कभी If स्टेटमेंट के समूह की तुलना में किसी नियम को कहीं अधिक स्पष्ट रूप से व्यक्त करते हैं।
| Operaटो | जब True लौटाता है | उदाहरण | उत्पादन |
|---|---|---|---|
| Xor | इन दोनों शर्तों में से केवल एक ही सही है, दोनों कभी नहीं। | (1 = 1) Xor (5 = 0) | यह सच है |
| समतुल्य | दोनों स्थितियों का मान समान है, या तो दोनों सत्य हैं या दोनों असत्य। | (1 = 1) समतुल्य (2 = 2) | यह सच है |
| छोटा सा भूत | पहली शर्त दूसरी शर्त को दर्शाती है; केवल True Imp False ही गलत है। | (1 = 1) महत्वपूर्ण (5 = 0) | झूठा |
Xor तीनों में सबसे व्यावहारिक है। यह ऐसे नियम के लिए उपयुक्त है जैसे "छूट केवल स्टाफ सदस्य या लॉयल्टी सदस्य पर लागू होती है, लेकिन उस व्यक्ति पर नहीं जो दोनों हो"। Eqv और Imp मुख्य रूप से पुराने कोड और लॉजिक अभ्यासों में दिखाई देते हैं, इसलिए इन्हें लिखने की तुलना में इन्हें पहचानना अधिक महत्वपूर्ण है।
उपरोक्त कोड युक्त Excel डाउनलोड करें
