जांचें कि क्या एक स्ट्रिंग में एक और स्ट्रिंग है


232

मैं यह जानना चाहता हूं कि क्या एक स्ट्रिंग में "," (अल्पविराम) है। क्या हमारे पास चार-चार पढ़ने के अलावा कोई और विकल्प है?


14
INSTRआपके लिए काम करता है ?
स्टीफन क्वान

जवाबों:


385

इंस्ट्र फ़ंक्शन का उपयोग करें

Dim pos As Integer

pos = InStr("find the comma, in the string", ",")

15 में वापस आ जाएगा

अगर नहीं मिला तो वापस आ जाएगा

यदि आपको एक्सेल फॉर्मूला के साथ अल्पविराम खोजने की आवश्यकता है तो आप =FIND(",";A1)फ़ंक्शन का उपयोग कर सकते हैं ।

ध्यान दें कि यदि आप Instrएक स्ट्रिंग केस की स्थिति का पता लगाने के लिए उपयोग करना चाहते हैं -असंवेदनशील इंस्ट्र के तीसरे पैरामीटर का उपयोग करें और इसे कास्ट vbTextCompare(या डाई-हार्ड के लिए सिर्फ 1) दें।

Dim posOf_A As Integer

posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)

आपको 14 का मूल्य देगा।

ध्यान दें कि आपको इस मामले में शुरू की स्थिति को निर्दिष्ट करना होगा जैसा कि मैंने जुड़े विनिर्देश में कहा है: यदि तुलना निर्दिष्ट की गई है तो प्रारंभ तर्क की आवश्यकता है।


4
लेकिन क्या होगा अगर पाया गया स्ट्रिंग 0 स्थिति में है? आप "इंडेक्स 0 पर पाया" और "नहीं मिला (0)" के बीच अंतर कैसे करते हैं?
gEdringer

10
@gEdringer। जब पाया जाने वाला तार शुरू में होता है तो वह 1.
rene


23

InStrRev फ़ंक्शन भी है जो एक ही प्रकार का काम करता है, लेकिन पाठ के अंत से शुरुआत तक खोज करता है।

प्रति @ रेने का जवाब ...

Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")

... अभी भी 15 को वापस आ जाएगा, लेकिन अगर स्ट्रिंग में एक से अधिक खोज स्ट्रिंग है, जैसे "" "शब्द, तो:

Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")

... 6 के बजाय 20 पॉज़ लौटेंगे।


17

रेने के जवाब पर बिल्डिंग, आप एक फ़ंक्शन भी लिख सकते हैं जो या तो TRUE पर वापस आ गया है अगर सबस्ट्रिंग मौजूद था, या FALSE ने यह नहीं बताया:

Public Function Contains(strBaseString As String, strSearchTerm As String) As Boolean
'Purpose: Returns TRUE if one string exists within another
On Error GoTo ErrorMessage
    Contains = InStr(strBaseString, strSearchTerm)
Exit Function
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error"
End
End Function

3
इस फ़ंक्शन में हम किस प्रकार की डेटाबेस त्रुटि की उम्मीद कर रहे हैं? त्रुटि ट्रैपिंग और त्रुटि संदेश पूरी तरह से व्यर्थ प्रतीत होता है।
रूबी नुबी

11
@RoobieNuby यह सिर्फ मेरी डिफ़ॉल्ट त्रुटि हैंडलिंग है। मैंने इसे अपने सभी कार्यों में लगा दिया क्योंकि अगर कुछ गलत होता है, तो मैं चाहता हूं कि कर्मचारी मुझे बुलाएं, न कि खुद को ठीक करने की कोशिश करें।
सिंसियर बियर्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.