VBA InStr - Excel VBA InStr İşlevini kullanmak için en iyi 5 Örnek

Excel VBA InStr İşlevi

VBA'daki Instr , işlev için karşılaştırma yöntemini belirledikten sonra bir dizedeki belirli bir alt dizenin konumunu bulmak için kullanılır, bu işlev için dört farklı karşılaştırma yöntemi vardır, Instr bir dize işlevidir ancak işlev tarafından döndürülen çıktı sayısal olduğundan, bu işlevin çıktısı bir tamsayı değişkendir.

VBA'daki dize bir dizi karakterden başka bir şey değildir, yani çift tırnak ile sağlanan tüm metinler dizeler olarak kabul edilir. InStr İşlevi, Dizeleri işlemek için kullanılan yerleşik bir metin işlevidir. Örneğin - Bir cümleden bir alt dizeyi çıkarmak istiyorsanız veya yazı tipi tasarım değişikliklerini bir dizi karakterdeki belirli bir dizeye uygulamak istiyorsanız veya bir karakterin konumunu ve diğer birçok olasılığı bulmak istiyorsanız, InStr kullanın.

Sözdizimi

Aşağıdaki resimde gösterildiği gibi 4 argümanı vardır.

  • (Başlangıç): Bu zorunlu değildir. Bu, Instr işlevinin sağlanan metni aramaya hangi dizgeden başlayacağını belirtmemiz gereken sayısal değerdir. Örneğin: karakteri aramak istiyorsanız “a” kelimesinde “Bangalore” 3'ten rd pozisyonunda, biz 3'ten Yani 3 olarak konumunu başlayan Öğr işlevini anlatmak için gerekmez rd pozisyonunda, karakter “a” olduğunu 5 inci pozisyonuna. Bu parametreyi yok sayarsanız, varsayılan değer 1'dir.
  • Dize 1: Sağladığımız gerçek dizedir yani bu metinden alt dizeyi bulmaya çalışıyoruz. Örneğin, “Bangalore da a” dizesini arıyorsanız , Bangalore'da 1. Dize.
  • Dize 2: Bu, aradığımız dizeden başka bir şey değildir. Eğer dize arıyorsanız Örneğin, “bir” in “Bangalore,” Dize 2'dir bir .
  • (Karşılaştır): Bu yine isteğe bağlı bir argümandır. (Karşılaştırma) argümanında kullanılabilen üç tür seçenek vardır.
  • vbBinaryCompare: Bu, Dize 1'deki alt dizenin (dize 2) büyük / küçük harf duyarlı aramasından başka bir şey değildir. Örneğin, "Bangalore" sözcüğünde " a" arıyorsak, Instr sonuç olarak 2'yi döndürür ve eğer arıyor “A” kelimesinde de “Bangalore,” sağlanan dize büyük harf değer olduğundan Öğr sonucu 0 döndürecektir.

Bağımsız değişken olarak sıfır (0) da koyabiliriz.

vbTextCompare: Bu bizim için arıyorsunuz Örneğin, dize 1'de dize 2'nin bir harf duyarlı arama değil “a” kelimesinde “Bangalore,” Öğr sonucunda 2 döneceğini ve eğer aradığınız "Bangalore" kelimesindeki A " , Instr de 2'yi döndürecekti. Mantık A = a, B = b, C = c vb.….

Argüman olarak bir (1) de koyabiliriz.

vbDatabaseCompare: Bu, veritabanınızdaki bilgileri, yani Microsoft Access veritabanını karşılaştırmak için kullanılır.

Argüman olarak bir (-1) de koyabiliriz.

VBA Instr İşlevini kullanmanın ilk 5 Örneği

Örnek 1

İlk örnekle başlayalım. Bangalore kelimesinde , a karakterinin konumunu bulun .

Aşağıdaki kod bizim için görevi yerine getirecektir.

Kod:

Alt Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub

Şimdi yukarıda verilen VBA kodunu F5 Anahtarını kullanarak çalıştırın veya bu kodu aşağıda verilen ekran görüntüsünde gösterildiği gibi manuel olarak da çalıştırabilirsiniz.

Çıktı:

Örnek 2

Şimdi Bangalore kelimesinde , "a" karakterinin üçüncü konumdaki konumunu bulun .

Aşağıdaki kod bizim için görevi yerine getirecektir.

Kod:

Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub

Yukarıda verilen kodu çalıştırmak için aşağıdaki ekran görüntüsünde gösterildiği gibi F5 tuşunu kullanabilir veya bu kodu manuel olarak da çalıştırabilirsiniz.

Çıktı:

Şimdi yukarıdaki görselde, önceki koddan farka bakın. Biz 3 olarak karakterin başlangıç konumunu belirtmiştik yana, ilk karakteri göz ardı “a” 2 nd konumunu.

Örnek 3

Şimdi büyük / küçük harfe duyarlı aramayı göreceğiz. Bangalore kelimesinde "A" harfini bulun.

Bunun için, karşılaştırma bağımsız değişkenini vbBinaryCompare olarak sağlamamız gerekir.

Kod:

Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub

Şimdi bu kodu F5 Tuşunu kullanarak çalıştırın veya bu kodu manuel olarak da çalıştırabilirsiniz.

Çıktı:

Karşılaştırma bağımsız değişkenini vbBinaryCompare olarak sağladığımız için Instr işlevi sonucu sıfır olarak döndürdü çünkü büyük harf “A” yok.

Örnek 4

Şimdi büyük / küçük harfe duyarlı bir arama daha göreceğiz. Bangalore kelimesinde "A" harfini bulun. Önceki örnek sonucu sıfır olarak döndürdü.

Buradaki büyük / küçük harfe duyarlı yaklaşımın üstesinden gelmek için, karşılaştırma argümanını vbTextCompare olarak sağlamamız gerekir.

Kod:

Sub Instr_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub

Şimdi Çalıştır, bu kodu F5 Tuşunu kullanarak veya bu kodu manuel olarak da çalıştırabilirsiniz.

Çıktı:

Örnek 5

Now we will see the advanced level of Instr function. If you have many sheets that have a more or less similar name and you want to hide all those sheets at once, we can use the below code to hide a specific sheet.

For example, I have 5 sheets named Summary 1, Summary 2, Summary 3, Summary 4, and Data Sheet.

Now I want to hide all those sheets which have the word “Summary.” Use the below code to hide all the sheets which have the word Summary in its name.

Code:

Sub To_Hide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Similarly, in order to unhide all those sheets, use the below code.

Code:

Sub To_UnHide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Things to Remember

  • Instr is a case sensitive function. In order to eliminate this case sensitive issue, you need to supply the (compare) argument as.
  • If you are searching for case sensitive character, you need to supply the (compare) argument as, by default, VBA takes this as the argument even if you do not supply.
  • Instr bir VBA işlevidir, bu nedenle onu diğer yerleşik formüller gibi bir excel çalışma sayfasında kullanamazsınız.
  • İşlev, String 2'yi bulamazsa, sonuç sıfır olacaktır.

Ilginç makaleler...