Excel VBA InStr funkcija
Instr VBA tiek izmantots, lai uzzinātu dotā apakšvirsraksta pozīciju virknē pēc tam, kad esam norādījuši funkcijas salīdzināšanas metodi, šai funkcijai ir četras dažādas salīdzināšanas metodes, Instr ir virknes funkcija, bet funkcijas atgrieztā izeja ir ciparu, tāpēc šī funkcija tiek izvadīta vesela skaitļa mainīgajā.
VBA virkne nav nekas cits kā rakstzīmju sērija, ti, visi teksti, kas tiek piegādāti ar pēdiņām, tiek uzskatīti par virknēm. InStr funkcija ir iebūvēta teksta funkcija, ko izmanto, lai manipulētu ar virknēm. Piemēram - ja vēlaties izvilkt apakšvirkni no teikuma vai ja vēlaties veikt fontu noformējuma izmaiņas konkrētai virknei rakstzīmju sērijā, vai arī vēlaties atrast rakstzīmes pozīciju un daudzas citas iespējas, varat izmantot InStr.

Sintakse

Tam ir 4 argumenti, kā parādīts zemāk esošajā attēlā.
- (Sākums): tas nav obligāti. Šī ir skaitliskā vērtība, kas mums jānorāda, no kuras virknes pozīcijas Instr funkcija sāk meklēt piegādāto tekstu. Piemēram, ja jūs vēlaties meklēt rakstzīmi "a" , kas vārdu "Bangaloras" no 3 rd stāvoklī, mums ir nepieciešams, lai pastāstītu INSTR funkciju sākuma pozīcijas kā 3. So no 3 trešajā pozīcijā, raksturs "a" ir in 5 th stāvoklī. Ja jūs ignorējat šo parametru, noklusējuma vērtība ir 1.
- 1. virkne: Šī ir faktiskā virkne, kuru mēs piegādājam, ti, no šī teksta mēs cenšamies atrast apakšvirkni. Piemēram, ja meklējat virkni “a” sadaļā “Bangalore”, 1. virkne - Bangalorā.
- 2. virkne: Tas ir nekas cits kā tā, kuru meklējam. Piemēram, ja meklējat virkni “a” sadaļā “Bangalore”, 2. virkne ir a .
- (Salīdzināt): Tas atkal ir izvēles arguments. Argumentā (salīdzināt) ir pieejamas trīs veidu iespējas.

- vbBinaryCompare: Tas ir nekas, bet lieta jutīga meklēšanu ar apakšvirkni (string 2) String 1. Piemēram, ja mēs meklējam "par" ar vārdu "Bangalore," INSTR atgriezīsies 2, kā rezultātā, un, ja jūs meklējat “A” vārdā “Bangalore”, Instr rezultātā rezultāts būtu 0, jo piegādātā virkne ir lielo burtu vērtība.
Kā argumentu mēs varam ievietot arī nulli (0).
vbTextCompare: Tas nav reģistrjutīga meklēšanas virknes 2 virknē 1. Piemēram, ja mēs meklējam "par" ar vārdu "Bangalore," INSTR atgriezīsies 2, kā rezultātā, un, ja jūs meklējat " A ” vārdā “ Bangalore ”, Instr atgriezīs arī 2. Loģika ir A = a, B = b, C = c utt.
Kā argumentu varam norādīt arī vienu (1).
vbDatabaseCompare: Tas tiek izmantots, lai salīdzinātu informāciju no jūsu datu bāzes, ti, Microsoft Access datu bāzes.
Kā argumentu varam norādīt arī vienu (-1).
5 galvenie VBA Instr funkcijas izmantošanas piemēri
1. piemērs
Sāksim ar pirmo piemēru. Vārdā Bangalore atrodiet rakstzīmes pozīciju a.
Zemāk redzamais kods veiks mums uzdevumu.
Kods:
Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub
Tagad palaidiet iepriekš norādīto VBA kodu, izmantojot F5 atslēgu, vai arī varat palaist šo kodu manuāli, kā parādīts zemāk dotajā ekrānuzņēmumā.

Izeja:

2. piemērs
Tagad vārdam Bangalore atrodiet rakstzīmes “a” pozīciju no trešās pozīcijas.
Zemāk redzamais kods veiks mums uzdevumu.
Kods:
Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub
Lai palaistu iepriekš norādīto kodu, varat izmantot F5 taustiņu vai arī palaist šo kodu manuāli, kā parādīts zemāk dotajā ekrānuzņēmumā.

Izeja:

Tagad augšējā attēlā apskatiet atšķirību no iepriekšējā koda. Tā kā mēs esam minēts sākuma pozīciju, raksturu kā 3, tā ignorēja pirmo rakstzīmi "par" pie 2 nd pozīciju.
3. piemērs
Tagad mēs redzēsim reģistrjutīgu meklēšanu. Vārdā Bangalore atrodiet burtu “A.”
Lai to izdarītu, mums jāsniedz salīdzināšanas arguments kā vbBinaryCompare.
Kods:
Sub Instr_Example3 () Dim i kā variants i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub
Tagad palaidiet šo kodu, izmantojot taustiņu F5, vai arī varat palaist šo kodu manuāli.

Izeja:

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 ir VBA funkcija, tāpēc jūs to nevarat izmantot Excel darblapā tāpat kā citas iebūvētās formulas.
- Ja funkcija nevar atrast virkni 2, rezultāts būs nulle.