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, ] string1, string2 [, compare ] )
InStr işlevinin söz diziminde şu 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. Start null içeriyorsa bir hata oluşur. Karşılaştırma belirtilmişse, başlangıç bağımsız değişkeni gerekir. |
dize1 |
Gerekli. Aranmakta olan dize ifadesi. |
dize2 |
Gerekli. Dize ifadesi aranır. |
karşılaştırma |
İsteğe bağlı. dize karşılaştırması türünü belirtir. Karşılaştır null ise bir hata oluşur. Karşılaştırma belirtilmezse, karşılaştırma türünü SeçenekKarşılaştırması ayarı belirler. Karşılaştırmada yerel ayara özgü kuralları kullanmak için geçerli bir LCID (LocaleID) belirtin. |
İpucu: İfade Oluşturucusu IntelliSense'e sahiptir, böylece ifadenizin hangi bağımsız değişkenleri gerektirdiğini görebilirsiniz.
Ayarlar
Bağımsız değişken ayarlarını karşılaştırmak ş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 gerçekleştirir. |
vbTextCompare |
1 |
Metinsel karşılaştırma gerçekleştirir. |
Dönüş Değerleri
If |
InStr dönüşleri |
---|---|
string1 sıfır uzunlukta |
0 |
string1 Null |
Null |
string2 sıfır uzunlukta |
başlangıç |
dize2 Null |
Null |
string2 bulunamadı |
0 |
string2, string1 içinde bulunur |
Eşleşmenin bulunduğu konum |
start > string2 |
0 |
Notlar
InStrB işlevi bir dizede bulunan bayt verileriyle kullanılır. InStrB, bir dizenin başka bir dizedeki ilk oluşumunun karakter konumunu döndürmek yerine bayt konumunu döndürür.
Örnekler
Bir ifadede InStr işlevini kullanma İfadeleri kullanabileceğiniz her yerde InStr'i kullanabilirsiniz. Örneğin, ilk dönemin konumunu bulmak istiyorsanız (.) ip adreslerini içeren bir alanda (IPAddress adlı), inStr'i kullanarak bu adresi bulabilirsiniz, örneğin:
InStr(1,[IPAddress],".")
InStr işlevi IPAddress alanındaki her değeri inceler ve ilk dönemin konumunu döndürür. Bu nedenle, IP adresinin ilk bölümü 10 ise.işlevi 3 değerini döndürür.
Ardından, IP adresinin ilk dönemden önceki bölümünü ayıklamak için InStr işlevinin çıkışında çalışan diğer işlevleri kullanabilirsiniz, örneğin:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
Bu örnekte InStr(1,[IPAddress],".") ilk dönemin konumunu döndürür. 1 çıkarılarak ilk dönemden önce kaç karakter (bu durumda 2) belirlenir. 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 oluşumunun 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.