सामग्री सारणी
एक्सेल VBA कोडसह कार्य करत असताना, आम्हाला काही अंगभूत फंक्शन्स आढळतात जे जटिल कार्य एका छोट्या एका-लाइन कोडमध्ये रूपांतरित करतात. InStr असे एक फंक्शन आहे जे Excel VBA मध्ये उपलब्ध आहे जे दिलेल्या पोझिशनपासून सुरू होणाऱ्या दुसर्या दिलेल्या स्ट्रिंगमध्ये विशिष्ट स्ट्रिंग शोधते. आज मी दाखवणार आहे की तुम्ही VBA मधील InStr फंक्शन दुसऱ्या दिलेल्या स्ट्रिंगमध्ये विशिष्ट स्ट्रिंग शोधण्यासाठी कसे वापरू शकता.
सराव वर्कबुक डाउनलोड करा
InStr Function.xlsm
चा परिचय VBA InStr फंक्शन
- सारांश
दिलेल्या स्ट्रिंगमध्ये विशिष्ट स्ट्रिंग शोधते, दिलेल्या स्थानापासून सुरू होते. जुळणी आढळल्यास, दिलेल्या स्ट्रिंगमधील स्थान तेथून परत करा जिथून सामना सुरू झाला.
- सिंटॅक्स
InStr([start) ],string1,string2,[तुलना])
- वितर्क
युक्तिवाद | आवश्यकता | विवरण
|
---|---|---|
[प्रारंभ] | पर्यायी | ज्या स्थानावरून ते शोधणे सुरू करेल. डीफॉल्ट आहे 1. |
स्ट्रिंग1 | आवश्यक | ज्या स्ट्रिंगमध्ये तो दिलेल्या स्ट्रिंगसाठी शोधतो. |
स्ट्रिंग2 | आवश्यक | दिलेल्या स्ट्रिंगमध्ये तो शोधत असलेली स्ट्रिंग. |
[तुलना] | पर्यायी | {-1,0,1,2} मधील संख्यात्मक मूल्य जे तुलनेचा प्रकार निर्दिष्ट करते. दडीफॉल्ट आहे -1 (vbUseCompareOption). पर्याय तुलना विधान निर्दिष्ट नसल्यास, बायनरी तुलना करा. |
टीप:
- जरी [start] वितर्क आणि [तुलना] वितर्क पर्यायी आहेत, तुम्ही [तुलना] युक्तिवाद निर्दिष्ट केल्यास तुम्हाला [प्रारंभ] युक्तिवाद आवश्यक आहे. अन्यथा, ते त्रुटी वाढवेल.
- [प्रारंभ] वितर्क आणि [तुलना] वितर्क पैकी एक किंवा दोन्ही असल्यास शून्य , तुम्हाला त्रुटीचा सामना करावा लागेल.
- [तुलना] युक्तिवादातील चार निर्दिष्ट मूल्ये चार भिन्न प्रकारची तुलना करतात. त्यांचा खाली उल्लेख केला आहे:
VALUE | CONSTANT | DESCRIPTION
|
---|---|---|
-1 | vbUseCompareOption | मध्ये निर्दिष्ट केलेली तुलना करते पर्याय तुलना विधान. |
0 | vbBinaryCompare | बायनरी तुलना करते. |
1 | vbTextCompare | मजकूर तुलना करते. |
2 | vbDatabaseCompare | तुमच्या डेटाबेसवर आधारित तुलना करते . |
- पर्याय तुलना विधान हे मुख्य VBA कोड सुरू होण्यापूर्वी दिलेले विधान आहे. जेव्हा आवश्यक असेल तेव्हा कोड बायनरी तुलना किंवा मजकूर तुलना शोधेल की नाही हे निर्दिष्ट करते.
पर्याय मजकूर तुलना करा
-
- सोप्या भाषेत , बायनरी तुलना म्हणजे केस-संवेदीतुलना.
- सोप्या भाषेत , मजकूर तुलना म्हणजे केस-असंवेदनशील तुलना.
- परतावा मूल्य
- स्ट्रिंग1 मधील स्थान परत करते जिथून स्ट्रिंग2 सुरू झाले.
- जर स्ट्रिंग2 सापडले नाही. स्ट्रिंग1 मध्ये प्रारंभ स्थितीपासून सुरू होणारे, 0 परत करते.
- जर स्ट्रिंग1 शून्य-लांबीचे असेल, तर 0. मिळवते.
- जर स्ट्रिंग2 शून्य-लांबीची असेल, तर वितर्क परत करतो स्टार्ट .
- आणि शेवटी, जर स्ट्रिंग1 किंवा स्ट्रिंग2 हे शून्य आहे, त्रुटी परत करते.
VBA InStr फंक्शन वापरण्यासाठी 3 सोपी उदाहरणे
मध्ये या विभागात, आपण एक्सेलमध्ये VBA InStr फंक्शन लागू करण्याची तीन सोपी उदाहरणे पाहू. VBA कोडमधील InStr फंक्शनचे पहिले उदाहरण पाहू.
1. पत्ता ईमेल पत्ता आहे की नाही हे ठरवणे VBA InStr फंक्शन वापरून
येथे, आम्ही ग्राहकांचे काही संपर्क पत्ते असलेला डेटा संच घेतला आहे. पत्ते ईमेल पत्ते आहेत की नाही हे ओळखणे येथे आमचे ध्येय असेल.
आता आम्ही ओळखण्यासाठी InStr फंक्शन वापरून VBA कोड विकसित करू. तो ईमेल पत्ता असो वा नसो. ते करण्यासाठी, खालील चरणांचे अनुसरण करा.
चरण:
- सुरुवातीला, डेव्हलपर टॅबवर जा आणि <निवडा 1>Visual Basic (किंवा VBA उघडण्यासाठी Alt+F11) दाबाविंडो.
- नंतर, VBA विंडोवर, Insert > वर जा. मॉड्यूल .
- त्यानंतर, मॉड्यूलवर, खालील कोड पेस्ट करा:
7227
<27
- शिवाय, आम्ही निर्णय नावाचे फंक्शन तयार केले आहे. पत्ता ईमेल पत्ता आहे की नाही हे ते ठरवते. आमच्याकडे असलेल्या डेटा सेटवर फंक्शन लागू करू.
- सेल C5 वर, खालील सूत्र लिहा आणि नंतर फिल हँडल वापरून उर्वरित सेल ऑटोफिल करा.
=DECISION(B5)
- आम्ही पाहू शकतो, आम्ही प्रत्येक पत्ता ओळखला आहे की तो ईमेल पत्ता आहे की नाही किंवा नाही.
🎓 कोड कसे कार्य करते?
- फंक्शन DECISION(स्ट्रिंग म्हणून string1)
प्रथम, हे DECISION नावाचे फंक्शन तयार करते स्ट्रिंग1 नावाचे स्ट्रिंग आर्ग्युमेंट.
- पूर्णांक म्हणून मंद स्थिती
ते स्थिती<नावाचे पूर्णांक व्हेरिएबल घोषित करते 2>.
- स्थिती = InStr(1, string1, “@”, 0)
हे चे मूल्य नियुक्त करते 1, स्ट्रिंग1, “@” आणि 0 वितर्कांसह InStr फंक्शनचे आउटपुट म्हणून स्थिती व्हेरिएबल. थोडक्यात, हे पत्त्यामध्ये स्थान नियुक्त करते जेथे “@” आहे.
- जर स्थान = 0 तर निर्णय = “ईमेल नाही”
ते निर्णय फंक्शनचे आउटपुट “ईमेल नाही” म्हणून नियुक्त करते, जर स्थिती व्हेरिएबल 0 आहे, याचा अर्थ, पत्त्यामध्ये कोणतेही “@” नव्हते.
(दिलेल्या स्ट्रिंगमध्ये कोणतीही स्ट्रिंग आढळली नसल्यास, InStr फंक्शन 0 परत करते).
- अन्य निर्णय = “ईमेल”
हे नियुक्त करते पत्त्यामध्ये “@” असल्यास “Email” म्हणून DECISION फंक्शनचे आउटपुट. अशा प्रकारे जेथे “@” आहे ते पत्ते ईमेल म्हणून वर्गीकृत केले जातात आणि बाकीचे “ईमेल नाही” म्हणून वर्गीकृत केले जातात.
समान वाचन
- Excel मध्ये VBA UCASE फंक्शन कसे वापरावे (4 उदाहरणे)
- Excel VBA मध्ये MsgBox फंक्शन वापरा (एक पूर्ण मार्गदर्शक तत्त्व)
- एक्सेलमध्ये VBA स्प्लिट फंक्शन कसे वापरावे (5 उदाहरणे)
- एक्सेलमधील VBA मध्ये LCase फंक्शन वापरा (सह 4 उदाहरणे)
- एक्सेल VBA मध्ये फिक्स फंक्शन कसे वापरावे (4 उदाहरणे)
2. VBA InStr फंक्शनचा वापर काही ईमेल पत्त्यांचा विस्तार काढणे
येथे, आमच्याकडे काही ग्राहकांच्या काही ईमेल पत्त्यांची यादी आहे. यावेळी आम्ही ईमेल पत्त्याचा विस्तार काढू जसे की त्यांच्याकडे gmail.com किंवा yahoo.com आहे.
ते करण्यासाठी, खालील स्टेप्स फॉलो करा.
स्टेप्स:
- मागील पद्धतीप्रमाणे सुरुवात करण्यासाठी, नवीन VBA<2 उघडा> मोड्यूल करा आणि विंडोमध्ये खालील कोड पेस्ट करा.
8870
- याशिवाय, आम्ही नावाचे फंक्शन तयार केले आहे. विस्तार . हे कोणत्याही ईमेल पत्त्याचा विस्तार काढतो.
- याशिवाय, हे कार्य आमच्याकडे असलेल्या डेटा सेटवर लागू करूया. प्रथम, सेल C5 वर हे सूत्र प्रविष्ट करा आणि नंतर फिल हँडल वर डबल-क्लिक करा.
=EXTENSION(B5)
- शेवटी, आम्ही पाहू शकतो की आम्ही सर्व ईमेलचा विस्तार यशस्वीरित्या काढला आहे.
🎓 कोड कसे कार्य करते?
- फंक्शन EXTENSION(Email as String)
हे EXTENSION नावाचे नवीन फंक्शन तयार करते, ईमेल नावाचे स्ट्रिंग आर्ग्युमेंट.
- पूर्णांक म्हणून मंद स्थिती
हा भाग स्थिती नावाचा पूर्णांक व्हेरिएबल घोषित करतो .
- स्थिती = InStr(1, ईमेल, “@”, 0)
हे <1 चे मूल्य नियुक्त करते 1, ईमेल, “@” आणि 0 वितर्कांसह InStr फंक्शनचे आउटपुट म्हणून>स्थिती व्हेरिएबल. थोडक्यात, हे ईमेल मध्ये स्थान नियुक्त करते जेथे “@” आहे.
- विस्तार = उजवीकडे(ईमेल, (लेन (ईमेल) – स्थान))
हा भाग “@” या चिन्हानंतरचे वर्ण म्हणून EXTENSION फंक्शनचे आउटपुट नियुक्त करतो. हा ईमेल चा आवश्यक विस्तार आहे.
3. VBA InStr फंक्शन वापरून नामातून नाव किंवा आडनाव काढणे
शेवटी, आम्ही एक वेगळे कार्य करू. च्या काही कर्मचाऱ्यांची नावे यावेळी आमच्याकडे आहेतएक कंपनी. आणि आम्ही कर्मचार्यांचे नाव किंवा आडनाव काढण्यासाठी फंक्शन तयार करण्याचा प्रयत्न करू.
ते करण्यासाठी, खालील चरणांचे अनुसरण करा.
चरण:
- प्रथम, पद्धत 1 प्रमाणेच, खालील कोड VBA विंडोमध्ये नवीन मॉड्यूलमध्ये पेस्ट करा.
3114
- येथे, आम्ही SHORTNAME नावाचे फंक्शन तयार केले आहे जे नावाचे नाव किंवा आडनाव काढते. चला हा फॉर्म्युला आमच्या डेटा सेटवर लागू करूया.
- प्रथम, पहिले नाव काढण्यासाठी, सेल C5 मध्ये खालील सूत्र लिहा.
=SHORTNAME(B5,-1)
- शेवटी, आडनावे काढण्यासाठी, आम्ही खालील सूत्र D5 मध्ये लिहितो:
=SHORTNAME(B5,1)
- यानंतर, जर आपण उर्वरित सेल फिल हँडलर<2 ने ऑटो-फिल केले तर>, आम्ही आमचा इच्छित परिणाम पाहू.
🎓 कोड कसे कार्य करते?
- फंक्शन SHORTNAME(Name as String, First_or_Last as Integer)
हे SHORTNAME<2 नावाचे नवीन फंक्शन तयार करते> नाव नावाच्या एका स्ट्रिंग आर्ग्युमेंटसह आणि प्रथम_किंवा_अंतिम नावाचा एक पूर्णांक वितर्क.
- पूर्णांक म्हणून डिम ब्रेक <11
- Break = InStr(1, Name, ” “, 0) <10
- जर First_or_Last = -1 असेल तर SHORTNAME = Left(Name, Break – 1)
- SHORTNAME = Right(Name, Len(Name) – Break)
हा भाग ब्रेक नावाचा नवीन पूर्णांक व्हेरिएबल घोषित करतो.
ते वितर्कांसह InStr फंक्शनचे आउटपुट म्हणून Break व्हेरिएबलचे मूल्य नियुक्त करते 1, नाव, “ ” आणि 0 . थोडक्यात, हे नाव मध्ये स्थान नियुक्त करते जेथे स्पेस (“ ”).
ही ओळ SHORTNAME फंक्शनचे आउटपुट स्पेस च्या आधी वर्ण म्हणून नियुक्त करते, जर First_or_Last वितर्क -1 असेल. हे पहिले नाव आहे.
हा भाग आउटपुट नियुक्त करतो SHORTNAME हे स्पेस नंतरचे वर्ण म्हणून कार्य करते, जर First_or_Last वितर्क 1 असेल. हे आडनाव आहे.
निष्कर्ष
अशा प्रकारे, तुम्ही InStr फंक्शनसह VBA कोड लिहू शकता जे दुसर्या दिलेल्या स्ट्रिंगमधील विशिष्ट स्ट्रिंगची स्थिती शोधते. स्ट्रिंग, आणि नंतर तुम्ही विविध उपयोगांसाठी तुमची स्वतःची फंक्शन्स तयार करू शकता. शिवाय, तुम्हाला काही प्रश्न असल्यास, आम्हाला मोकळ्या मनाने विचारा.