सामग्री तालिका
Excel VBA कोडहरूसँग काम गर्दा, हामीले जटिल कार्यलाई सानो एक-लाइन कोडमा रूपान्तरण गर्ने केही बिल्ट-इन प्रकार्यहरू भेट्छौं। InStr Excel VBA मा उपलब्ध एउटा यस्तो प्रकार्य हो जसले कुनै विशेष स्ट्रिङलाई दिइएको स्थितिबाट सुरु गरी अर्को दिइएको स्ट्रिङ भित्र खोज्छ। आज म तपाईँले VBA मा InStr प्रकार्यलाई अर्को दिइएको स्ट्रिङ भित्र एउटा विशिष्ट स्ट्रिङ खोज्न कसरी प्रयोग गर्न सक्नुहुन्छ भनेर देखाउनेछु।
अभ्यास कार्यपुस्तिका डाउनलोड गर्नुहोस्
InStr Function.xlsm
को परिचय VBA InStr प्रकार्य
- सारांश
दिईएको स्ट्रिङ भित्र एक निश्चित स्ट्रिङको लागि खोजी गर्दछ, दिइएको स्थितिबाट सुरु हुन्छ। यदि मेल फेला पार्छ भने, दिइएको स्ट्रिङमा स्थिति फर्काउँछ जहाँबाट खेल सुरु भयो।
- सिन्ट्याक्स
InStr([start) ],string1,string2,[तुलना])
- तर्क
तर्क | आवश्यकता | विवरण 16> |
---|---|---|
[सुरुवात] | वैकल्पिक | यसले खोजी सुरु गर्ने स्थिति। पूर्वनिर्धारित 1 हो। |
स्ट्रिङ१ | आवश्यक | स्ट्रिङ जस भित्र यसले दिइएको स्ट्रिङ खोज्छ। |
string2 | आवश्यक | यसले दिइएको स्ट्रिङ भित्र खोज्ने स्ट्रिङ। |
[तुलना] | ऐच्छिक | {-1,0,1,2} बीचको संख्यात्मक मान जसले तुलनाको प्रकार निर्दिष्ट गर्दछ। दपूर्वनिर्धारित -1 (vbUseCompareOption) हो। यदि विकल्प तुलना कथन निर्दिष्ट गरिएको छैन भने, बाइनरी तुलना गर्नुहोस्। |
नोट:
- [start] argument र [compare] argument ऐच्छिक हो, यदि तपाइँ [compare] argument निर्दिष्ट गर्नुहुन्छ भने तपाइँलाई [start] argument चाहिन्छ। अन्यथा, यसले त्रुटि खडा गर्नेछ।
- यदि कुनै एक वा दुवै [स्टार्ट] तर्क र [तुलना] तर्क नल<2 हो।>, तपाईंले त्रुटिको सामना गर्नुहुनेछ।
- [तुलना] तर्कमा चार निर्दिष्ट मानहरूले चार फरक प्रकारको तुलना प्रदर्शन गर्दछ। तिनीहरू तल उल्लेख गरिएका छन्:
VALUE | CONSTANT | DESCRIPTION
|
---|---|---|
-1 | vbUseCompareOption | मा तोकिएको तुलना प्रदर्शन गर्दछ विकल्प तुलना कथन। |
0 | vbBinaryCompare | बाइनरी तुलना प्रदर्शन गर्दछ। |
1 | vbTextCompare | पाठ तुलना प्रदर्शन गर्दछ। |
2 | vbDatabaseCompare | तपाईँको डाटाबेसमा आधारित तुलना प्रदर्शन गर्दछ . |
- विकल्प तुलना कथन मुख्य VBA कोड सुरु हुनु अघि प्रदान गरिएको कथन हो। यसले निर्दिष्ट गर्दछ कि कोडले बाइनरी तुलना वा पाठ तुलनाको लागि खोजी गर्नेछ जब आवश्यक छ।
विकल्प तुलना पाठ
-
- सरल शब्दहरूमा , बाइनरी तुलना को अर्थ केस-संवेदनशील हुन्छतुलना।
- साधारण शब्दमा , पाठ तुलना को अर्थ केस-असंवेदनशील तुलना हो।
- फिर्ता मूल्य
- string1 मा स्थिति फर्काउँछ जहाँबाट string2 सुरु भयो।
- यदि string2 फेला परेन। string1 भित्र start स्थितिबाट सुरु हुँदै, ० फर्काउँछ।
- यदि string1 शून्य-लम्बाइको छ भने, ० फर्काउँछ।
- यदि स्ट्रिङ2 शून्य-लम्बाइको छ भने, तर्क स्टार्ट फर्काउँछ।
- र अन्तमा, यदि कुनै पनि स्ट्रिङ१ वा string2 Null हो, त्रुटि फर्काउँछ।
VBA InStr प्रकार्य प्रयोग गर्न 3 सजिलो उदाहरणहरू
मा यस खण्डमा, हामी एक्सेलमा VBA InStr प्रकार्य लागू गर्ने तीनवटा सजिलो उदाहरणहरू देख्नेछौं। VBA कोडहरूमा InStr प्रकार्यको पहिलो उदाहरण हेरौं।
1। VBA InStr प्रकार्य प्रयोग गरेर ठेगाना इमेल ठेगाना हो वा होइन भन्ने निर्णय गर्दै
यहाँ, हामीले ग्राहकहरूको केही सम्पर्क ठेगानाहरू समावेश भएको डेटा सेट लिएका छौं। यहाँ हाम्रो लक्ष्य ठेगानाहरू इमेल ठेगानाहरू हुन् वा होइनन् भनेर पहिचान गर्नु हुनेछ।
अब हामी पहिचान गर्न InStr प्रकार्य प्रयोग गरेर VBA कोड विकास गर्नेछौं। चाहे यो इमेल ठेगाना हो वा होइन। त्यसो गर्न, तलका चरणहरू पालना गर्नुहोस्।
चरणहरू:
- सुरुमा, विकासकर्ता ट्याबमा जानुहोस् र <चयन गर्नुहोस्। 1>भिजुअल बेसिक (वा थिच्नुहोस् Alt+F11) खोल्नको लागि VBA window।
- त्यसपछि, VBA विन्डोमा, Insert > मा जानुहोस्। मोड्युल ।
- त्यसपछि, मोड्युलमा निम्न कोड टाँस्नुहोस्:
5543
- यसबाहेक, हामीले निर्णय नामक प्रकार्य सिर्जना गरेका छौं। यसले ठेगाना इमेल ठेगाना हो कि होइन भन्ने निर्णय गर्छ। हामीसँग भएको डेटा सेटमा प्रकार्य लागू गरौं।
- सेल C5 मा, निम्न सूत्र लेख्नुहोस् र त्यसपछि फिल ह्यान्डल प्रयोग गरेर बाँकी कक्षहरूलाई स्वत: भर्नुहोस्।
=DECISION(B5)
- हामीले देख्न सक्छौं, हामीले प्रत्येक ठेगाना पहिचान गरेका छौं कि यो ईमेल ठेगाना हो कि छैन वा होइन।
🎓 कोडले कसरी काम गर्छ?
- Function DECISION(string1 as String)
पहिले, यसले DECISION नामक प्रकार्य सिर्जना गर्दछ string1 नामको string argument.
- Dim Position as Integer
यसले Position<नामक इन्टिजर चर घोषणा गर्छ 2>।
- Position = InStr(1, string1, “@”, 0)
यसले को मान तोक्छ स्थिति चर InStr प्रकार्यको आउटपुटको रूपमा तर्कहरू 1, string1, “@” र 0 । छोटकरीमा, यसले ठेगानामा स्थिति प्रदान गर्दछ जहाँ त्यहाँ “@” छ।
- यदि स्थिति = 0 त्यसपछि निर्णय = "इमेल होइन"
यसले निर्णय प्रकार्यको आउटपुटलाई “इमेल होइन” , यदि स्थिति चर हो 0 , यसको मतलब, त्यहाँ कुनै “@” ठेगानामा थिएन।
(यदि कुनै स्ट्रिङ दिइएको स्ट्रिङ भित्र फेला परेन भने सम्झनुहोस्, InStr प्रकार्यले 0 फर्काउँछ।
- Else DECISION = “Email”
यसले तोक्छ ठेगानामा “@” भएमा “Email” को रूपमा DECISION प्रकार्यको आउटपुट। यसरी “@” रहेको ठेगानाहरूलाई इमेल को रूपमा वर्गीकृत गरिएको छ, र बाँकीलाई “इमेल होइन” को रूपमा वर्गीकृत गरिएको छ।
समान पढाइहरू
- Excel मा VBA UCASE प्रकार्य कसरी प्रयोग गर्ने (4 उदाहरणहरू)
- Excel VBA मा MsgBox प्रकार्य प्रयोग गर्नुहोस् (एक पूर्ण दिशानिर्देश)
- एक्सेलमा VBA SPLIT प्रकार्य कसरी प्रयोग गर्ने (५ उदाहरणहरू)
- VBA मा LCase प्रकार्य प्रयोग गर्नुहोस् ४ उदाहरणहरू)
- एक्सेल VBA मा फिक्स फंक्शन कसरी प्रयोग गर्ने (४ उदाहरणहरू)
2. का लागि VBA InStr प्रकार्य प्रयोग गर्दै केही इमेल ठेगानाहरूको विस्तार निकाल्दै
यहाँ, हामीसँग केही ग्राहकहरूको इमेल ठेगानाहरूको सूची छ। यस पटक हामी इमेल ठेगानाको विस्तार निकाल्नेछौं जस्तै तिनीहरूसँग gmail.com वा yahoo.com ।
त्यसो गर्नको लागि, तलका चरणहरू पालना गर्नुहोस्।
चरणहरू:
- पहिलेको विधि जस्तै, नयाँ VBA<2 खोल्नुहोस्।> मोड्युल गर्नुहोस् र निम्न कोडलाई विन्डोमा टाँस्नुहोस्।
5709
- अतिरिक्त, हामीले एउटा प्रकार्य सिर्जना गरेका छौं। विस्तार । यसले कुनै पनि इमेल ठेगानाको विस्तार निकाल्छ।
- यसबाहेक, हामीसँग भएको डेटा सेटमा यो प्रकार्य लागू गरौं। पहिले, सेल C5 मा यो सूत्र प्रविष्ट गर्नुहोस् र त्यसपछि फिल ह्यान्डल मा डबल-क्लिक गर्नुहोस्।
=EXTENSION(B5)
- अन्तमा, हामीले देख्न सक्छौं कि हामीले सबै इमेलहरूको एक्स्टेन्सन सफलतापूर्वक निकालेका छौं।
🎓 कोडले कसरी काम गर्छ?
- Function EXTENSION(Email as String)
यसले EXTENSION नामक नयाँ प्रकार्य सिर्जना गर्छ, इमेल नामको स्ट्रिङ आर्गुमेन्ट।
- इन्टेजरको रूपमा डिम पोजिशन
यस भागले पोजिशन नामको इन्टिजर चर घोषणा गर्छ .
- Position = InStr(1, Email, “@”, 0)
यसले <1 को मान तोक्छ 1, इमेल, “@” र 0 संग InStr प्रकार्यको आउटपुटको रूपमा स्थिति चल। छोटकरीमा, यसले इमेल मा स्थान तोक्छ जहाँ त्यहाँ “@” छ।
- एक्सटेन्सन = दायाँ(इमेल, (लेन (इमेल) – स्थिति))
यस भागले विस्तार प्रकार्यको आउटपुटलाई प्रतीक “@” पछि क्यारेक्टरको रूपमा प्रदान गर्दछ। यो इमेल को आवश्यक विस्तार हो।
३. VBA InStr प्रकार्य प्रयोग गरेर नामबाट पहिलो वा अन्तिम नाम निकाल्दै
अन्तमा, हामी एक विशिष्ट फरक कार्य गर्नेछौं। यसपटक हामीले केही कर्मचारीको नाम राखेका छौंसस्था। र हामी कर्मचारीहरूको पहिलो नाम वा अन्तिम नाम निकाल्नको लागि एक प्रकार्य निर्माण गर्ने प्रयास गर्नेछौं।
त्यो गर्नको लागि, तलका चरणहरू पालना गर्नुहोस्।
<०> चरणहरू:- पहिले, विधि 1 जस्तै, VBA सञ्झ्यालमा नयाँ मोड्युलमा तलको कोड टाँस्नुहोस्।
2203
- यहाँ, हामीले SHORTNAME नामक प्रकार्य सिर्जना गरेका छौं जसले नामबाट पहिलो नाम वा अन्तिम नाम निकाल्छ। हाम्रो डेटा सेटमा यो सूत्र लागू गरौं।
- पहिलोमा, पहिलो नाम निकाल्न, तलको सूत्रलाई सेल C5 मा लेख्नुहोस्।
=SHORTNAME(B5,-1)
- अन्तमा, अन्तिम नामहरू निकाल्न, हामी निम्न सूत्रलाई D5 मा लेख्छौं:
=SHORTNAME(B5,1)
- त्यसपछि, यदि हामीले फिल ह्यान्डलर<2 को साथ बाँकी कक्षहरू स्वत: भर्दछौं।>, हामीले हाम्रो इच्छित परिणाम देख्नेछौं।
🎓 कोडले कसरी काम गर्छ?
- प्रकार SHORTNAME(Name as String, First_or_Last as Integer)
यसले SHORTNAME<2 नामक नयाँ प्रकार्य सिर्जना गर्छ> नाम नामको एउटा स्ट्रिङ आर्गुमेन्ट र First_or_Last नामको एउटा Integer Argument संग।
- Dim Break as Integer
यो भागले ब्रेक नामको नयाँ पूर्णांक चर घोषणा गर्दछ।
- Break = InStr(1, Name, ” “, 0) <10
यसले ब्रेक भ्यारीएबलको मान InStr प्रकार्यको आउटपुटको रूपमा आर्गुमेन्टहरू प्रदान गर्दछ। 1, नाम, “” र 0 । छोटकरीमा, यसले नाम मा स्थान प्रदान गर्दछ जहाँ त्यहाँ स्पेस (“ ”) छ।
- यदि First_or_Last = -1 त्यसपछि SHORTNAME = Left(नाम, Break – 1)
यस रेखाले SHORTNAME प्रकार्यको आउटपुटलाई स्पेस अघि क्यारेक्टरको रूपमा नियुक्त गर्दछ, यदि First_or_Last तर्क -1 हो। यो पहिलो नाम हो।
- SHORTNAME = Right(Name, Len(Name) – Break)
यस भागले को आउटपुट प्रदान गर्दछ SHORTNAME ले स्पेस पछि क्यारेक्टरको रूपमा कार्य गर्दछ, यदि First_or_Last argument 1 हो भने। यो अन्तिम नाम हो।
निष्कर्ष
यस तरिकाले, तपाईँले InStr प्रकार्यको साथ VBA कोडहरू लेख्न सक्नुहुन्छ जसले अर्को दिइएको भित्र एक विशिष्ट स्ट्रिङको स्थिति पत्ता लगाउँदछ। string, र त्यसपछि तपाइँ विभिन्न प्रकारका प्रयोगहरूको लागि आफ्नै प्रकार्यहरू सिर्जना गर्न सक्नुहुन्छ। यसबाहेक, यदि तपाईंसँग कुनै प्रश्नहरू छन् भने, हामीलाई सोध्न नहिचकिचाउनुहोस्।