VBA InStr - Az öt legfontosabb példa az Excel VBA InStr függvény használatára

Tartalomjegyzék

Excel VBA InStr függvény

Az Instr in VBA-t arra használják, hogy megtudja egy adott részstring helyzetét egy karakterláncban, miután meghatároztuk az összehasonlítási módszert a függvényhez. Ennek a függvénynek négy különböző összehasonlítási módja van, az Instr egy string függvény, de a függvény által visszaadott kimenet numerikus, így a függvény kimenete egész változóban van.

A VBA karakterlánc nem más, mint egy karaktersorozat, azaz az összes dupla idézőjelű szöveget karakterláncként kezeljük. Az InStr Function egy beépített szövegfüggvény, amelyet a karakterláncok kezelésére használnak. Például - Ha egy mondatból ki akar vonni egy részstruktúrát, vagy ha betűtípus-változtatásokat szeretne alkalmazni egy adott karakterláncra a karakterek sorozatában, vagy ha meg szeretné találni egy karakter helyzetét és sok más lehetőséget, akkor használja az InStr.

Szintaxis

4 argumentuma van, amint azt az alábbi kép mutatja.

  • (Start): Ez nem kötelező. Ez az a számérték, amelyet meg kell adnunk, hogy az string függvény melyik pozíciójából kezdi keresni a mellékelt szöveget. Például: ha meg akarja keresni a karakter „a” a szó „Bangalore” a 3 rd helyzetben, meg kell mondani a InStr függvény kiindulási helyzetbe 3. Tehát a 3 rd helyzetben, a karakter „a” jelentése az 5 -én helyzetben. Ha figyelmen kívül hagyja ezt a paramétert, az alapértelmezett érték 1.
  • 1. karakterlánc: Ez az a tényleges sztring, amelyet szállítunk, azaz ebből a szövegből próbáljuk megtalálni az alszöveget. Például, ha az Ön által keresett string „a” a „Bangalore” karakterlánc 1 Bangalore-ban.
  • 2. húr : Ez nem más, mint az, hogy mi az a karakterlánc, amelyet keresünk. Például, ha az Ön által keresett string „a” a „Bangalore” karakterlánc 2 a .
  • (Összehasonlítás): Ez ismét opcionális argumentum. Háromféle lehetőség áll rendelkezésre az (összehasonlítás) argumentumban.
  • vbBinaryCompare: Ez nem más, mint a kis- és nagybetűk közötti keresés az 1. karaktersorozat alszövegében (2. karakterlánc). Például, ha a „Bangalore” szóban az „a” kifejezésre keresünk , az Instr ennek eredményeként 2-et ad vissza, és ha az „A” kifejezésre keresnek a „Bangalore” szóban, az Instr 0-t adna eredményül, mert a mellékelt karakterlánc nagybetűs.

Nullát (0) is feltehetünk argumentumként.

vbTextCompare: Ez nem a kis- és nagybetűk közötti keresés a 2. karakterláncban az 1. karakterláncban. Például, ha a „Bangalore” szóban az „a” kifejezésre keresünk , az Instr ennek eredményeként 2-et ad vissza, és ha a „ A ” a „ Bangalore ”szóban az Instr 2-et is visszaadna. A logika A = a, B = b, C = c stb.

Egy (1) -t is felhozhatunk érvként.

vbDatabaseCompare: Ez az adatbázisból származó adatok összehasonlítására szolgál, azaz a Microsoft Access adatbázisból.

Egy (-1) -t is felhozhatunk érvként.

Az 5 legfontosabb példa a VBA Instr funkció használatára

1. példa

Kezdjük az első példával. A Bangalore szóban keresse meg a karakter helyzetét a.

Az alábbi kód elvégzi számunkra a feladatot.

Kód:

Sub Instr_Példa1 () Dim i Variant i = InStr ("Bangalore", "a") MsgBox i End Sub

Most futtassa a fenti VBA kódot az F5 kulccsal, vagy futtathatja ezt a kódot manuálisan is, amint az az alábbi képernyőképen látható.

Kimenet:

2. példa

Most a Bangalore szóban keresse meg az „a” karakter helyzetét a harmadik pozícióból.

Az alábbi kód elvégzi számunkra a feladatot.

Kód:

Sub Instr_Példa2 () Dim i Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub

A fenti kód futtatásához használhatja az F5 billentyűt, vagy manuálisan is futtathatja ezt a kódot, amint az az alábbi képernyőképen látható.

Kimenet:

Most a fenti képen nézze meg a különbséget az előző kódtól. Mivel már említettük a kiindulási helyzet a karaktert, mint 3, akkor figyelmen kívül hagyja az első karakter „a” a 2 nd helyzetbe.

3. példa

Most meglátjuk a kis- és nagybetűk közötti keresést. A Bangalore szóban keresse meg az „A” betűt .

Ehhez meg kell adnunk az összehasonlítás argumentumot vbBinaryCompare néven.

Kód:

Sub Instr_Példa3 () Dim i Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub

Most futtassa ezt a kódot az F5 kulccsal, vagy futtathatja manuálisan is.

Kimenet:

Since we have supplied the compare argument as vbBinaryCompare Instr function returned the result as zero because there are no uppercase letter “A” exists.

Example #4

Now we will see one more case sensitive search. In the word Bangalore, find the letter “A.” The previous example returned the result as zero.

In order to overcome the case sensitive approach here, we need to supply the compare argument as vbTextCompare.

Code:

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

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

Output:

Example #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.
  • Az Instr egy VBA függvény, így nem használhatja az excel munkalapon, mint más beépített képletek.
  • Ha a függvény nem találja a 2. karakterláncot, az eredmény nulla lesz.

érdekes cikkek...