VBA InStr - 5 najboljših primerov za uporabo funkcije Excel VBA InStr

Funkcija Excel VBA InStr

Instr v VBA se uporablja za ugotavljanje položaja danega podniza v nizu, potem ko funkciji določimo način primerjave, za to funkcijo obstajajo štiri različne metode primerjave, Instr je nizna funkcija, vendar je izhod, ki ga funkcija vrne, številsko, tako da je izhod te funkcije v celoštevilčni spremenljivki.

String v VBA ni nič drugega kot niz znakov, tj. Vsa besedila, ki so opremljena z dvojnimi narekovaji, se obravnavajo kot nizi. Funkcija InStr je vgrajena besedilna funkcija, ki se uporablja za upravljanje nizov. Na primer - če želite iz stavka izvleči podniz ali če želite uporabiti spremembe zasnove pisave za določen niz v vrsti znakov ali če želite najti položaj znaka in številne druge možnosti, lahko uporabite InStr.

Sintaksa

Ima 4 argumente, kot je prikazano na spodnji sliki.

  • (Začetek): To ni obvezno. To je številčna vrednost, ki jo moramo določiti, s katerega položaja niza začne funkcija Instr iskati priloženo besedilo. Na primer: če želite iskati znak "a" v besedi "Bangalore" od 3 tretjem položaju, Moramo povedati funkcijo instr izhodiščni položaj kot 3. Torej od 3 rd položaju, znak "a" je v 5 th položaj. Če prezrete ta parameter, je privzeta vrednost 1.
  • Niz 1: To je dejanski niz, ki ga dobavljamo, tj. Iz tega besedila poskušamo najti podniz. Na primer, če iščete niz "a" v "Bangalore," String 1 v Bangaloreju.
  • Niz 2: To ni nič drugega kot tisto niz, ki ga iščemo. Če na primer iščete niz "a" v "Bangalore", je niz 2 a .
  • (Primerjaj): To je spet neobvezen argument. V argumentu (primerjaj) so na voljo tri vrste možnosti.
  • vbBinaryCompare: To ni nič drugega kot iskanje velikih podnapisov (niz 2) v nizu 1. Če na primer iščemo "a" v besedi "Bangalore", bi Instr kot rezultat vrnil 2 in če bi iščejo »A« v besedi »Bangalore«, Instr bi kot rezultat vrnil 0, ker je priloženi niz velika črka.

Kot argument lahko postavimo tudi nič (0).

vbTextCompare: To ne razlikuje med velikimi in malimi črkami pri iskanju niza 2 v nizu 1. Če na primer iščemo »a« v besedi »Bangalore«, bi Instr kot rezultat vrnil 2 in če iščete » A " v besedi " Bangalore, " bi Instr vrnil tudi 2. Logika je A = a, B = b, C = c itd.….

Kot argument lahko postavimo tudi enega (1).

vbDatabaseCompare: Uporablja se za primerjavo podatkov iz vaše baze podatkov, tj. zbirke podatkov Microsoft Access.

Kot argument lahko postavimo tudi enega (-1).

Top 5 primerov uporabe funkcije VBA Instr

Primer # 1

Začnimo s prvim primerom. V besedi Bangalore poiščite položaj lika a.

Spodnja koda bo opravila nalogo namesto nas.

Koda:

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

Zdaj zaženite zgoraj navedeno kodo VBA s tipko F5 ali pa jo lahko zaženete tudi ročno, kot je prikazano na spodnjem posnetku zaslona.

Izhod:

2. primer

Zdaj v besedi Bangalore poiščite položaj znaka "a" s tretjega mesta.

Spodnja koda bo opravila nalogo namesto nas.

Koda:

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

Za zagon zgoraj dane kode lahko uporabite tipko F5 ali pa jo zaženete tudi ročno, kot je prikazano na spodnjem posnetku zaslona.

Izhod:

Zdaj na zgornji sliki si oglejte razliko od prejšnje kode. Ker smo začetni položaj znaka omenili kot 3, je na 2. mestu prezrl prvi znak "a" .

3. primer

Zdaj bomo videli iskanje z velikimi in malimi črkami. V besedi Bangalore poiščite črko "A."

Za to moramo argument primerjave navesti kot vbBinaryCompare.

Koda:

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

Zdaj zaženite to kodo s tipko F5 ali pa jo lahko zaženete tudi ročno.

Izhod:

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 je funkcija VBA, tako da je ne morete uporabljati na Excelovem delovnem listu kot druge vgrajene formule.
  • Če funkcija ne najde niza 2, bo rezultat enak nič.

Zanimive Članki...