एक्सेल VBA में VLOOKUP - VBA में VLOOKUP कोड कैसे लिखें?

एक्सेल में Vlookup एक वर्कशीट फ़ंक्शन है लेकिन इसका उपयोग VBA में भी किया जा सकता है, Vlookup की कार्यक्षमता VBA और वर्कशीट दोनों में कार्यक्षमता के समान है, क्योंकि यह वर्कशीट फ़ंक्शन है VBA में Vlookup का उपयोग करने का तरीका Application.WorksheetFunction के माध्यम से है विधि और तर्क समान हैं।

Excel VBA में VLOOKUP फ़ंक्शन

Excel में VLOOKUP फ़ंक्शन का उपयोग किसी सरणी में मान खोजने और किसी अन्य स्तंभ से उसका संबंधित मान वापस करने के लिए किया जाता है। खोज का मान पहले कॉलम में मौजूद होना चाहिए। यह भी उल्लेख करना आवश्यक है कि एक सटीक मैच की तलाश है या एक अनुमानित मैच की। वर्कशीट फ़ंक्शन VLOOKUP का उपयोग VBA कोडिंग में किया जा सकता है। फ़ंक्शन अंतर्निहित VBA नहीं है और इस प्रकार केवल कार्यपत्रक का उपयोग करके कॉल कर सकते हैं।

Excel में VLOOKUP फ़ंक्शन में निम्न सिंटैक्स है:

जिसमें, लुकअप_वेल्यू देखने के लिए मान है, table_arrray तालिका है, col_index_num रिटर्न मान का कॉलम नंबर है, अगर मैच सही है या अनुमानित है, तो range_lookup दर्शाता है। range_lookup TRUE / FALSE या 0/1 हो सकता है।

VBA कोड में, VLOOKUP फ़ंक्शन का उपयोग किया जा सकता है:

Application.WorksheetFunction.vlookup (लुकअप_वेल्यू, टेबल_अरे, col_index_num, range_lookup)

Excel VBA में VLookup का उपयोग कैसे करें?

Excel VBA में VLookup कोड के कुछ उदाहरण नीचे दिए गए हैं।

एक्सेल VBA में VLookup कोड उदाहरण # 1

आइए देखें कि हम एक्सेल VBA में वर्कशीट फ़ंक्शन VLOOKUP को कैसे कॉल कर सकते हैं।

मान लीजिए कि आप छात्रों की आईडी, नाम और उनके द्वारा प्राप्त औसत अंकों पर डेटा देते हैं।

अब, आप आईडी 11004 वाले छात्र द्वारा प्राप्त अंकों को देखना चाहते हैं।

मान के लिए देखने के लिए, निम्न चरणों का पालन करें:

  • डेवलपर टैब पर जाएं और विजुअल बेसिक पर क्लिक करें।
  • VBA विंडो के तहत, सम्मिलित करें पर जाएँ और मॉड्यूल पर क्लिक करें।
  • अब, VBA VLOOKUP कोड लिखें। निम्नलिखित VBA VLOOKUP कोड का उपयोग किया जा सकता है।

उप vlookup1 ()
डिम स्टूडेंट_ड लॉन्ग
डिम के निशान के रूप में लॉन्ग
स्टूडेंट_ड = 11004
सेट माय अरेंज = रेंज ("बी 4: डी 8")
मार्क्स = एप्लीकेशन.वर्कशीट फंक्शन.व्लूकअप (स्टूडेंट_ड, माय, 3, फाल्स)
एंड सब

सबसे पहले, एक छात्र आईडी को परिभाषित करें, जो देखने के लिए मूल्य है। इसलिए, हम परिभाषित करते हैं,

student_id = 11004

अगला, हम उस सीमा को परिभाषित करते हैं जिसमें मूल्य और वापसी मूल्य मौजूद है। चूँकि हमारा डेटा B4: D8 की कोशिकाओं में मौजूद है, हम एक श्रेणी को परिभाषित करते हैं- जैसे कि:

Myrange = श्रेणी ("B4: D8") सेट करें

अंत में, हम वर्कशीट फ़ंक्शन का एक चर में उपयोग करके VLOOKUP फ़ंक्शन को इनपुट करते हैं, जैसे कि:

निशान = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

संदेश बॉक्स में निशान मुद्रित करने के लिए, हम निम्नलिखित कमांड का उपयोग करते हैं:

MsgBox "आईडी के साथ छात्र:" और student_id & "प्राप्त" और अंक और "अंक"

यह वापस आ जाएगी:

आईडी के साथ एक छात्र: 11004 ने 85 अंक प्राप्त किए।

अब, रन बटन पर क्लिक करें।

आप देखेंगे कि एक्सेल शीट में एक संदेश बॉक्स दिखाई देगा।

Excel VBA में VLookup कोड उदाहरण # 2

मान लीजिए कि आपके पास कर्मचारियों के नाम और उनके वेतन पर डेटा है। इस डेटा को कॉलम B और C. दिया गया है। अब आपको VBA VLOOKUP कोड लिखना होगा, जैसे कि सेल में कर्मचारी का नाम F4 दिया गया है, सेल G4 में कर्मचारी का वेतन लौटा दिया जाएगा।

हमें VBA VLOOKUP कोड लिखें।

  1. उस श्रेणी को परिभाषित करें जिसमें मान मौजूद हैं, यानी, कॉलम B और C।

Myrange = Range ("B: C") सेट करें

  1. कर्मचारी के नाम को परिभाषित करें और सेल F4 से नाम इनपुट करें।

सेट नाम = श्रेणी ("F4")

  1. सेल G4 के रूप में वेतन को परिभाषित करें।

वेतन निर्धारित करें = श्रेणी ("G4")

  1. अब, VBA में WorksheetFunction का उपयोग करके VLOOKUP फ़ंक्शन को कॉल करें और इसे वेतन में इनपुट करें। वैल्यू। यह सेल G4 में मान (Vlookup फंक्शन का आउटपुट) लौटाएगा। निम्नलिखित सिंटैक्स का उपयोग किया जा सकता है:

सैलरी। वेल = एप्लीकेशन। कॉर्कशीट फंक्शन। वलूकअप (नाम, मेरी व्यवस्था, 2, गलत)

  1. अब, मॉड्यूल चलाएं। सेल G4 में VBA VLOOKUP कोड चलाने के बाद कर्मचारी का वेतन होगा।

मान लीजिए कि आप सेल F4 के मान को वर्कशीट में "डेविड" में बदल देते हैं और कोड को फिर से चलाते हैं, और यह डेविड का वेतन लौटा देगा।

Excel VBA में VLookup कोड उदाहरण # 3

मान लें कि आपके पास आपकी कंपनी के कर्मचारी का डेटा है, उनकी आईडी, नाम, विभाग और वेतन है। VBA में Vlookup का उपयोग करके, आप किसी कर्मचारी का वेतन विवरण उसके नाम और विभाग का उपयोग करके प्राप्त करना चाहते हैं।

चूंकि एक्सेल में vlookup फंक्शन केवल एक कॉलम में लुकअप_वेल्यू को खोजता है, जो कि table_array का पहला कॉलम है, इसलिए यह आवश्यक है कि आप पहले प्रत्येक कर्मचारी के "नाम" और "विभाग" वाले कॉलम बनाएं।

VBA में, हम वर्कशीट के कॉलम B में "नाम" और "विभाग" मान डालें।

ऐसा करने के लिए, डेवलपर टैब पर जाएं और Visual Basic पर क्लिक करें। फिर सम्मिलित करें पर जाएं और एक नया मॉड्यूल शुरू करने के लिए मॉड्यूल पर क्लिक करें।

अब कोड लिखते हैं, जैसे कि कॉलम B में कॉलम D (नाम) और कॉलम E के मान शामिल हैं।

वाक्य रचना इस प्रकार है:

सबसे पहले, i = 4 से 'for' लूप का उपयोग करें क्योंकि इस मामले में मान 4 वें पंक्ति से शुरू हो रहे हैं । कॉलम सी की अंतिम पंक्ति के अंत तक लूप जारी रहेगा। इसलिए, चर को 'लूप' के अंदर एक पंक्ति संख्या के रूप में उपयोग किया जा सकता है।

फिर सेल (row_number, column B) के लिए असाइन करने के लिए मान दर्ज करें, जिसे सेल (i, "B") के रूप में दिया जा सकता है। मान, सेल (row_number, column D) और "_" और सेल (row_number, column E) के रूप में। ) है।

मान लें कि आप सेल B5 = D5 और "_" और E5 निर्दिष्ट करना चाहते हैं, तो आप बस कोड का उपयोग कर सकते हैं:

कक्ष (5, "बी")। मान = कक्ष (5, "डी")। मान और "_" और कक्ष (5, "ई")।

अब, सरणी B5: E24 में लुकअप वैल्यू देखने के लिए चलें। आपको पहले लुकअप मान दर्ज करना होगा। उपयोगकर्ता से मान (नाम और विभाग) लेते हैं। यह करने के लिए,

  1. एक स्ट्रिंग के रूप में तीन चर, नाम, विभाग और लुकअप_वेल परिभाषित करें।
  2. उपयोगकर्ता से नाम इनपुट लें। कोड का उपयोग करें:

नाम = इनपुटबॉक्स ("कर्मचारी का नाम दर्ज करें")

जब आप कोड चलाते हैं, तो इनपुट बॉक्स "दर्ज करें …" की सामग्री को शीघ्र बॉक्स में प्रदर्शित किया जाएगा। प्रॉम्प्ट में दर्ज स्ट्रिंग नाम चर को सौंपा जाएगा।

  1. उपयोगकर्ता से विभाग लें। ऊपर के समान किया जा सकता है।

विभाग = इनपुटबॉक्स ("कर्मचारी का विभाग दर्ज करें")

  1. निम्नलिखित सिंटैक्स का उपयोग करके वैरिएबल लुकिंग_वल के विभाजक के रूप में "_" नाम और विभाग निर्दिष्ट करें:

लुकिंग_वल = नाम और "_" और विभाग

  1. लुकअप_वल के लिए खोज करने के लिए vlookup सिंटैक्स लिखें B5: E24 इसे वैरिएबल सैलरी में देता है।

वैरिएबल सैलरी को शुरू करें:

लंबे समय के रूप में वेतन

लुकअप_वल खोजने के लिए Vlookup फंक्शन का उपयोग करें। Table_array को Range ("B: F") के रूप में दिया जा सकता है, और वेतन 5 वें कॉलम में मौजूद है । निम्न सिंटैक्स का उपयोग इस प्रकार किया जा सकता है:

वेतन = आवेदन ।orksheetFunction.VLookup (लुकअप_वाल, रेंज ("बी: एफ"), 5, गलत नंबर)

  1. संदेश बॉक्स में वेतन प्रिंट करने के लिए, सिंटैक्स का उपयोग करें:

MsgBox (कर्मचारी का वेतन "और वेतन है")

अब, कोड चलाएँ। कार्यपत्रक में एक संकेत बॉक्स दिखाई देगा जिसमें आप नाम दर्ज कर सकते हैं। नाम दर्ज करने के बाद (साशी कहें) और ओके पर क्लिक करें।

यह एक और बॉक्स खोलेगा जिसमें आप विभाग में प्रवेश कर सकते हैं। विभाग में प्रवेश करने के बाद, आईटी

यह कर्मचारी के वेतन को प्रिंट करेगा।

अगर वोडअप किसी भी कर्मचारी को नाम और विभाग के साथ मिल सकता है, तो यह एक त्रुटि देगा। मान लीजिए कि आप "विष्णु" और विभाग "आईटी" नाम देते हैं, तो यह रन-टाइम त्रुटि '1004' लौटाएगा।

इस समस्या को हल करने के लिए, आप कोड में निर्दिष्ट कर सकते हैं, कि इस प्रकार की त्रुटि पर "मान नहीं पाया गया" के बजाय प्रिंट करें। यह करने के लिए,

  1. Vlookup सिंटैक्स का उपयोग करने से पहले, निम्न कोड का उपयोग करें-

त्रुटि GoTo संदेश पर

चेक:

अनुगामी कोड (चेक :) की निगरानी की जाएगी, और यदि यह एक त्रुटि प्राप्त करता है, तो यह "संदेश" कथन पर जाएगा

  1. कोड के अंत में (पहले उप सब से पहले) निर्दिष्ट करें कि यदि त्रुटि संख्या 1004 है, तो संदेश बॉक्स में प्रिंट करें, "कर्मचारी डेटा मौजूद नहीं है।" यह सिंटैक्स का उपयोग करके किया जा सकता है:

संदेश:

यदि Err.Number = 1004 तब

MsgBox ("कर्मचारी डेटा मौजूद नहीं है")

अगर अंत

मॉड्यूल 1:

उप vlookup3 ()
i = 4 के लिए कक्ष (पंक्तियाँ, "C")। अंत (xlUp) .Row
कक्ष (i, "B")। मान = कक्ष (i, "D")। मान और "_"। "और कोशिकाओं (मैं," ई ")। मूल्य
अगला Idim नाम स्ट्रिंग के रूप में
मंद विभाग स्ट्रिंग के रूप में
मंद lookup_val के रूप में स्ट्रिंग
मंद वेतन Longname = InputBox के रूप में (" कर्मचारी का नाम दर्ज करें ")
विभाग = InputBox (" विभाग दर्ज कर्मचारी ")
लुकअप_वेल = नाम और" _ "और डिपार्टमेंटऑन त्रुटि GoTo संदेश की
जाँच करें:
वेतन = Application.WorksheetFunction.VLookup (लुकअप_वाल, रेंज (" बी: एफ "), 5, गलत:
MsgBox (" कर्मचारी का वेतन है) "और वेतन) संदेश:
यदि Err.Number = 1004 तो
MsgBox (" कर्मचारी डेटा मौजूद नहीं है ")
एंड इफ सब

एक्सेल VBA में VLookup के बारे में याद रखने वाली बातें

  • वर्क्सशीटफ़ंक्शन का उपयोग करके एक्सेल VBA में Vlookup फ़ंक्शन को बुलाया जा सकता है।
  • एक्सेल VBA में vlookup फंक्शन का सिंटैक्स समान रहता है।
  • जब VBA vlookup कोड लुकअप_वेल्यू नहीं ढूंढ सकता है, तो यह 1004 त्रुटि देगा।
  • यदि कोई त्रुटि देता है, तो vlookup फ़ंक्शन में त्रुटि को गोटो स्टेटमेंट का उपयोग करके प्रबंधित किया जा सकता है।

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