InStr
InStr फ़ंक्शन VBA में स्ट्रिंग के भीतर विशिष्ट टेक्स्ट की स्थिति खोजने के लिए उपयोग किया जाता है।
मूल सिंटैक्स
InStr([start], string1, string2, [compare])
पैरामीटर
| पैरामीटर | विवरण |
|---|---|
| start | (वैकल्पिक) खोज शुरू करने की स्थिति। डिफ़ॉल्ट 1 है। |
| string1 | खोजी जाने वाली स्ट्रिंग |
| string2 | खोजने के लिए सबस्ट्रिंग |
| compare | (वैकल्पिक) तुलना मोड। vbBinaryCompare (डिफ़ॉल्ट, केस-संवेदनशील) या vbTextCompare (केस-असंवेदनशील) |
रिटर्न मान
- यदि पाया गया: पहली घटना की स्थिति (1 से शुरू)
- यदि नहीं पाया गया: 0
मूल उदाहरण
साधारण खोज
Sub BasicInStr()
Dim position As Long
position = InStr("Hello World", "World")
Debug.Print position ' 7 प्रदर्शित करता है
position = InStr("Hello World", "xyz")
Debug.Print position ' 0 प्रदर्शित करता है (नहीं मिला)
End Sub
खोज स्थिति निर्दिष्ट करना
Sub InStrWithStart()
Dim text As String
Dim pos1 As Long, pos2 As Long
text = "apple, orange, apple, banana"
' पहले से खोजें
pos1 = InStr(1, text, "apple")
Debug.Print "पहला apple: " & pos1 ' 1
' पहले के बाद से खोजें
pos2 = InStr(pos1 + 1, text, "apple")
Debug.Print "दूसरा apple: " & pos2 ' 16
End Sub
केस-संवेदनशील बनाम केस-असंवेदनशील खोज
Sub CompareMode()
Dim text As String
text = "Hello World"
' केस-संवेदनशील (डिफ़ॉल्ट)
Debug.Print InStr(1, text, "WORLD", vbBinaryCompare) ' 0
' केस-असंवेदनशील
Debug.Print InStr(1, text, "WORLD", vbTextCompare) ' 7
End Sub
チェック
केस-असंवेदनशील खोज के लिए vbTextCompare का उपयोग करें। यह उपयोगकर्ता इनपुट को संभालते समय उपयोगी
है जहां केस भिन्न हो सकता है।
व्यावहारिक उदाहरण
टेक्स्ट में कीवर्ड की जांच
Sub CheckKeyword()
Dim email As String
email = "user@example.com"
If InStr(email, "@") > 0 Then
Debug.Print "वैध ईमेल प्रारूप"
Else
Debug.Print "अमान्य ईमेल प्रारूप"
End If
End Sub
सभी घटनाओं को खोजना
Sub FindAllOccurrences()
Dim text As String
Dim search As String
Dim pos As Long
Dim count As Integer
text = "the quick brown fox jumps over the lazy dog near the tree"
search = "the"
pos = 1
count = 0
Do
pos = InStr(pos, text, search)
If pos > 0 Then
count = count + 1
Debug.Print "स्थिति " & pos & " पर '" & search & "' मिला"
pos = pos + 1
End If
Loop While pos > 0
Debug.Print "कुल घटनाएं: " & count
End Sub
सबस्ट्रिंग निकालना
Sub ExtractDomain()
Dim email As String
Dim atPos As Long
Dim domain As String
email = "user@example.com"
atPos = InStr(email, "@")
If atPos > 0 Then
domain = Mid(email, atPos + 1)
Debug.Print "डोमेन: " & domain ' example.com
End If
End Sub
InStrRev - अंत से खोजना
InStrRev स्ट्रिंग के अंत से खोजता है:
Sub UseInStrRev()
Dim path As String
Dim lastSlash As Long
Dim fileName As String
path = "C:\Users\Documents\file.txt"
' अंतिम बैकस्लैश खोजें
lastSlash = InStrRev(path, "\")
fileName = Mid(path, lastSlash + 1)
Debug.Print "फ़ाइल नाम: " & fileName ' file.txt
End Sub
チェック
InStrRev फ़ाइल पथ से फ़ाइल नाम निकालने या अंतिम डिलीमीटर खोजने के लिए उपयोगी है। सारांश
InStr फ़ंक्शन VBA में टेक्स्ट खोज के लिए मौलिक उपकरण है:
| उपयोग | विवरण |
|---|---|
InStr(string1, string2) | साधारण खोज |
InStr(start, string1, string2) | विशिष्ट स्थिति से खोजें |
InStr(..., vbTextCompare) | केस-असंवेदनशील खोज |
InStrRev(string1, string2) | अंत से खोजें |
मुख्य बिंदु:
- 0 का रिटर्न मान इंगित करता है कि सबस्ट्रिंग नहीं मिला
- स्थिति 1 से शुरू होती है
- सभी घटनाओं को खोजने के लिए लूप में उपयोग करें
#VBA
#InStr
#स्ट्रिंग
#टेक्स्ट खोज