VBA „InStr“ 5 populiariausi „Excel VBA InStr“ funkcijos pavyzdžiai

„Excel VBA InStr“ funkcija

Instr VBA yra naudojamas norint sužinoti tam tikros eilutės poziciją eilutėje, kai mes nurodome funkcijos palyginimo metodą, yra keturi skirtingi šios funkcijos palyginimo metodai, Instr yra eilutės funkcija, tačiau funkcijos grąžinta išvestis yra skaitmeninis, todėl šios funkcijos išvestis yra sveiko skaičiaus kintamasis.

Stygos VBA yra ne kas kita, o simbolių serija, ty visi tekstai, pateikiami su dvigubomis kabutėmis, laikomi eilutėmis. „InStr“ funkcija yra įmontuota teksto funkcija, naudojama manipuliuoti eilutėmis. Pvz. - jei norite ištraukti posakio eilutę iš sakinio arba norite pritaikyti šrifto dizaino pakeitimus tam tikrai eilutei simbolių serijoje, arba jei norite rasti simbolio padėtį ir daugybę kitų galimybių, galite naudoti „InStr“.

Sintaksė

Ji turi 4 argumentus, kaip parodyta žemiau esančiame paveikslėlyje.

  • (Pradžia): Tai nėra privaloma. Tai yra skaitinė vertė, kurią turime nurodyti, nuo kurios eilutės „Instr“ funkcijos pradžios reikia ieškoti pateikto teksto. Pvz .: jei norite ieškoti simbolio „a“ žodyje „Bangalore“trečiosios padėties, „Instr“ funkcijos pradinę padėtį turime pasakyti kaip 3. Taigi iš 3 -iosios pozicijos simbolis „a“ yra 5 -oje pozicijoje. Jei ignoruosite šį parametrą, numatytoji reikšmė yra 1.
  • 1 eilutė: tai yra tikroji eilutė, kurią mes tiekiame, ty iš šio teksto bandome surasti poskyrį. Pavyzdžiui, jei ieškote eilutės „a“ skiltyje „Bangalore“, 1 eilutė Bangalore.
  • 2 eilutė: tai ne kas kita, o tai, ko ieškome eilutės. Pavyzdžiui, jei ieškote „Bangalore“ eilutės „a“ , 2 eilutė yra a .
  • (Palyginti): tai vėlgi neprivalomas argumentas. Argumente (palyginti) yra trijų rūšių parinkčių.
  • „vbBinaryCompare“: tai yra tik didžiųjų ir mažųjų raidžių paieška eilutėje (2 eilutė) 1 eilutėje. Pavyzdžiui, jei ieškome „a“ žodyje „Bangalore“, „ Instr“ rezultatas būtų 2, ir jei ieškote „A“ žodyje „Bangalore“, Instr rezultatas būtų 0, nes pateikiama eilutė yra didžiųjų raidžių reikšmė.

Taip pat argumentu galime įvesti nulį (0).

„vbTextCompare“: tai nėra didžiųjų ir mažųjų raidžių paieška eilutėje 2 1 eilutėje. Pavyzdžiui, jei ieškome „a“ žodyje „Bangalore“, „ Instr“ rezultatas būtų 2, o jei ieškote „ A “ žodyje „ Bangalore “ Instr grąžins ir 2. Logika yra A = a, B = b, C = c ir kt.

Taip pat argumentu galime pateikti vieną (1).

„vbDatabaseCompare“: jis naudojamas norint palyginti informaciją iš jūsų duomenų bazės, ty „Microsoft Access“ duomenų bazės.

Taip pat argumentu galime pateikti vieną (-1).

5 populiariausi VBA Instr funkcijos naudojimo pavyzdžiai

1 pavyzdys

Pradėkime nuo pirmojo pavyzdžio. Žodžiu „ Bangalore“ raskite veikėjo poziciją a.

Žemiau pateiktas kodas atliks mums užduotį.

Kodas:

Sub Instr_Pavyzdys1 () Dim i As variantas i = InStr ("Bangalore", "a") MsgBox i End Sub

Dabar paleiskite aukščiau pateiktą VBA kodą naudodami F5 klavišą arba galite paleisti šį kodą rankiniu būdu, kaip parodyta toliau pateiktoje ekrano kopijoje.

Išvestis:

2 pavyzdys

Dabar žodyje „ Bangalore“ raskite veikėjo „a“ poziciją iš trečios pozicijos.

Žemiau pateiktas kodas atliks mums užduotį.

Kodas:

Sub Instr_Pavyzdys2 () Dim i As variantas = InStr (3, „Bangalore“, „a“) ​​„MsgBox i End Sub“

Norėdami paleisti aukščiau pateiktą kodą, galite naudoti klavišą F5 arba šį kodą paleisti rankiniu būdu, kaip parodyta toliau pateiktoje ekrano kopijoje.

Išvestis:

Dabar aukščiau pateiktame paveikslėlyje pažvelkite į skirtumą nuo ankstesnio kodo. Kadangi mes minėjome pradinę padėtį charakterio kaip 3, tai ignoravo pirmąją raidę "A" ne 2 -asis poziciją.

3 pavyzdys

Dabar matysime didžiųjų ir mažųjų raidžių paiešką. Žodyje Bangalore raskite raidę „A.“

Tam turime pateikti argumentą „palyginti“ kaip „ vbBinaryCompare“.

Kodas:

Sub Instr_Pavyzdys3 () „Dim i“ variantas i = InStr (1, „Bangalore“, „A“, vbBinaryCompare) „MsgBox i End Sub“

Dabar paleiskite šį kodą naudodami F5 klavišą arba galite paleisti šį kodą rankiniu būdu.

Išvestis:

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 yra VBA funkcija, todėl negalite jo naudoti „Excel“ darbalapyje, kaip ir kitos įmontuotos formulės.
  • Jei funkcija neranda eilutės 2, rezultatas bus lygus nuliui.

Įdomios straipsniai...