Bir dizenin başka bir dize içindeki ilk örneğinin konumunu belirten bir Variant (Long) döndürür.
Söz dizimi
InStr([start, ] dize1, dize2 [, karşılaştırma ] )
InStr işlevinin söz diziminde aşağıdaki bağımsız değişkenler bulunur:
| Bağımsız değişken | Açıklama |
|---|---|
| başlangıç | İsteğe bağlı. Her arama için başlangıç konumunu ayarlayan sayısal ifade. Belirtilmezse, arama ilk karakter konumundan başlar. Başlangıç Null değerini içeriyorsa bir hata oluşur. Karşılaştırma belirtilmişse, başlangıç bağımsız değişkeni gerekir. |
| dize1 | Gerekli. Aranan dize ifadesi. |
| dize2 | Gerekli. Dize ifadesi aradı. |
| karşılaştırma | İsteğe bağlı. Dize karşılaştırma türünü belirtir. Karşılaştırma Null ise, bir hata oluşur. Karşılaştırma belirtilmezse, OptionCompare ayarı karşılaştırma türünü belirler. Karşılaştırmada yerel ayara özgü kuralları kullanmak için geçerli bir LCID (LocaleID) belirtin. |
İpucu
İfade Oluşturucusu'nun IntelliSense'i vardır ve ifadenize hangi bağımsız değişkenlerin gerektiğini görebilirsiniz.
Ayarlar
Karşılaştırma bağımsız değişkeni ayarları şunlardır:
| Sabit | Değer | Açıklama |
|---|---|---|
| vbUseCompareOption | -1 | Option Compare deyiminin ayarını kullanarak bir karşılaştırma gerçekleştirir. |
| vbBinaryCompare | 0 | İkili karşılaştırma yapar. |
| vbTextCompare | 1 | Metin karşılaştırmasını yapar. |
Sonuç değerleri
| If | InStr sonucu |
|---|---|
| dize1 sıfır uzunlukta | 0 |
| dize1 Null | Null |
| dize2 sıfır uzunlukta | Başla |
| dize2 Null | Null |
| dize2 bulunamadı | 0 |
| dize2, dize1 içinde bulunur | Eşleşmenin bulunduğu pozisyon |
| başlangıç > dizesi2 | 0 |
Açıklamalar
InStrB işlevi, bir dizede bulunan bayt verileriyle kullanılır. InStrB, bir dizenin başka bir dize içindeki ilk örneğinin karakter konumunu döndürmek yerine, bayt konumunu döndürür.
Örnekler
InStr işlevini bir ifadede kullanma İfadeleri kullanabildiğiniz her yerde InStr'yi kullanabilirsiniz. Örneğin, IP adresleri içeren (IPAddress adlı) bir alanda ilk noktanın (.) konumunu bulmak istiyorsanız, bunu bulmak için InStr kullanabilirsiniz:
InStr(1,[IPAddress],".")
InStr işlevi IPAddress alanındaki her değeri inceler ve ilk dönemin konumunu döndürür. Dolayısıyla, IP adresinin ilk bölümü 10 ise, işlev 3 değerini döndürür.
Daha sonra, InStr işlevinin çıktısı üzerinde çalışan diğer işlevleri kullanarak, IP adresinin ilk noktadan önceki bölümünü ayıklayabilirsiniz, örneğin:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
Bu örnekte, InStr(1,[IPAddress],".") İlk dönemin konumunu verir. 1 çıkarma işlemi, ilk noktadan (bu durumda 2) kaç karakter önce geldiğini belirler. Left işlevi daha sonra IPAddress alanının sol kısmından bu kadar çok karakteri ayıklar ve 10 değerini döndürür.
VBA kodunda InStr kullanma
Not
Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülünde kullanımı gösterilir.
Bu örnek, bir dizenin başka bir dize içindeki ilk örneğinin konumunu döndürmek için InStr işlevini kullanır.
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.