Excel VBA InStr -toiminto
VBA: n Instria käytetään selvittämään tietyn merkkijonon sijainti merkkijonossa sen jälkeen, kun määritämme vertailumenetelmän funktiolle, tälle toiminnolle on neljä erilaista vertailumenetelmää, Instr on merkkijonofunktio, mutta funktion palauttama lähtö on numeerinen, joten tämän toiminnon tulos on kokonaislukumuuttuja.
Merkkijono VBA: ssa ei ole muuta kuin sarja merkkejä, toisin sanoen kaikkia kaksoislainausmerkeissä olevia tekstejä käsitellään merkkijonoina. InStr-toiminto on sisäänrakennettu tekstitoiminto, jota käytetään merkkijonojen manipulointiin. Esimerkiksi - Jos haluat purkaa alalauseen lauseesta tai haluat tehdä fontin muotoilun muutoksia tiettyyn merkkijonoon merkkisarjassa, tai jos haluat löytää merkin sijainnin ja monia muita mahdollisuuksia, voit käytä InStr.

Syntaksi

Siinä on 4 argumenttia, kuten alla olevassa kuvassa näkyy.
- (Käynnistä): Tämä ei ole pakollista. Tämä on numeroarvo, joka meidän on määritettävä, mistä merkkijonon kohdasta Instr-funktio alkaa etsiä toimitettua tekstiä. Esimerkki: Jos haluat etsiä merkin ”A” sanassa ”Bangalore” alkaen 3 rd asemassa, meidän täytyy kertoa instr toiminto alkuasetelmat 3. Joten 3 rd asemassa merkki ”a” on on 5 th asentoon. Jos ohitat tämän parametrin, oletusarvo on 1.
- Merkkijono 1: Tämä on varsinainen merkkijono, jonka toimitamme, eli yritämme löytää tästä tekstiosasta alimerkkijonon. Esimerkiksi, jos etsit merkkijonoa ”a” in ”Bangaloressa,” String 1 Bangaloressa.
- Jono 2: Tämä ei ole mitään muuta kuin mitä merkkijono etsimme. Esimerkiksi, jos etsit merkkijonoa ”a” in ”Bangaloressa,” String 2 on .
- (Vertaa): Tämä on jälleen valinnainen argumentti. (Vertaa) -argumentissa on käytettävissä kolmenlaisia vaihtoehtoja.

- vbBinaryCompare: Tämä ei ole muuta kuin merkkijonon 1 merkkijono (merkkijono 2). Jos jos etsimme sanaa "Bangalore" sanaa " a" , Instr palauttaisi tulokseksi 2, ja jos etsivät sanaa "Bangalore" sanaa "A" , Instr palauttaisi tuloksen 0, koska toimitettu merkkijono on isoja kirjaimia.
Voimme myös asettaa argumentin nollan (0).
vbTextCompare: Tämä ei ole merkkijonon 2 merkkijono 2-merkkijono merkkijonossa 1. Jos esimerkiksi haemme sanaa "Bangalore" sanaa " a" , Instr palauttaisi tulokseksi 2 ja jos etsit sanaa " A ” sanassa ” Bangalore ”, Instr palauttaisi myös 2. Logiikka on A = a, B = b, C = c jne..
Voimme myös asettaa yhden (1) argumentiksi.
vbDatabaseCompare: Tätä käytetään tietokannan eli Microsoft Access -tietokannan tietojen vertaamiseen.
Voimme myös asettaa yhden (-1) argumentiksi.
5 parasta esimerkkiä VBA Instr -toiminnon käytöstä
Esimerkki 1
Aloitetaan ensimmäisestä esimerkistä. Etsi sanassa Bangalore hahmon sijainti a.
Alla oleva koodi suorittaa tehtävän meille.
Koodi:
Sub Instr_Example1 () Dim i Variantti i = InStr ("Bangalore", "a") MsgBox i End Sub
Suorita nyt yllä annettu VBA-koodi käyttämällä F5-avainta tai voit suorittaa tämän koodin myös manuaalisesti, kuten alla olevassa kuvakaappauksessa näkyy.

Tuotos:

Esimerkki 2
Etsi nyt sanasta Bangalore merkin "a" sijainti kolmannesta sijasta.
Alla oleva koodi suorittaa tehtävän meille.
Koodi:
Sub Instr_Example2 () Dim i Variantti i = InStr (3, "Bangalore", "a") MsgBox i End Sub
Edellä mainitun koodin suorittamiseksi voit käyttää F5-näppäintä tai voit myös suorittaa tämän koodin manuaalisesti, kuten alla olevassa kuvakaappauksessa näkyy.

Tuotos:

Katso nyt edellisestä kuvasta ero edelliseen koodiin. Koska meillä on mainittu lähtöasennossa luonne 3, se jättää huomiotta ensimmäinen merkki ”a” on 2 toinen asema.
Esimerkki 3
Nyt näemme kirjainkoolla haun. Etsi sanasta Bangalore kirjain ”A.”
Tätä varten meidän on annettava vertaa-argumentti nimellä vbBinaryCompare.
Koodi:
Sub Instr_Example3 () Dim i Variantti i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Suorita tämä koodi nyt F5-näppäimellä tai voit suorittaa koodin myös manuaalisesti.

Tuotos:

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.
- Instr on VBA-toiminto, joten et voi käyttää sitä Excel-laskentataulukossa kuten muita sisäänrakennettuja kaavoja.
- Jos funktio ei löydä merkkijonoa 2, tulos on nolla.