VBA InStr | Viis parimat näidet funktsiooni Exceli VBA InStr kasutamiseks

Exceli VBA sisendfunktsioon

Instrumenti VBA-s kasutatakse antud alamstringi positsiooni väljaselgitamiseks stringis pärast funktsiooni võrdlusmeetodi täpsustamist. Selle funktsiooni jaoks on neli erinevat võrdlusmeetodit, Instr on stringifunktsioon, kuid funktsiooni tagastatud väljund on numbriline, nii et see funktsioon väljastatakse täisarvu muutujana.

String VBA-s pole muud kui tähemärkide rida, st kõiki topeltpakkumistega varustatud tekste käsitletakse stringidena. Funktsioon InStr on sisseehitatud tekstifunktsioon, mida kasutatakse stringide manipuleerimiseks. Näiteks - kui soovite eraldada lausest alamstringi või soovite rakendada fondikujunduse muudatusi konkreetsele stringile rea tähemärkides või kui soovite leida märgi positsiooni ja palju muid võimalusi, võite kasutada InStr.

Süntaks

Sellel on 4 argumenti, nagu on näidatud alloleval pildil.

  • [Start]: see pole kohustuslik. See on arvuline väärtus, mille peame määrama, millisest stringi asukohast Funk funktsioon hakkab tarnitud teksti otsima. Näiteks: kui soovite sõna „Bangalore” tähemärki „a” otsida kolmandast positsioonist, peame instr-funktsiooni lähtepositsiooniks ütlema 3. Seega on 3. positsioonist täht „a” 5. positsioonil. Kui ignoreerite seda parameetrit, on vaikeväärtus 1.
  • String 1: See on tegelik string, mida tarnime, st proovime sellest tekstist leida alamstringi. Näiteks kui otsite „Bangalore” stringi „a” , Bangalores String 1.
  • String 2: See pole midagi muud kui see, mida string otsime. Näiteks kui otsite „Bangalore” -st stringi „a ”, on string 2 a .
  • [Võrdle]: see on jällegi valikuline argument. Argumendis [võrrelda] on saadaval kolme tüüpi valikuid.

  • vbBinaryCompare: See on vaid tõstutundlik otsing alamstringid (string 2) String 1. Näiteks, kui me otsime "a" sõna "Bangalore" Instr Jõutakse 2 tulemusena ja kui te otsite tähe „A” jaoks sõnas „Bangalore” tagastaks Instr tulemuseks 0, kuna tarnitud string on suurtäht.

Samuti võime argumendiks panna nulli (0).

vbTextCompare: See ei ole stringi 2 stringi 2 otsing suurtähtede järgi. Näiteks kui otsime sõnas „Bangalore” sõna a” , tagastaks Instr tulemuseks 2 ja kui otsite sõna „A” sõnas “Bangalore” tagastaks Instr ka 2. Loogika on A = a, B = b, C = c jne.

Argumendiks võime panna ka ühe (1).

vbDatabaseCompare: Seda kasutatakse teie andmebaasi, st Microsoft Accessi andmebaasi teabe võrdlemiseks.

Argumendiks võime panna ka ühe (-1).

Viis parimat näidet VBA Instr-funktsiooni kasutamiseks

Selle VBA Instr Function Exceli malli saate alla laadida siit - VBA Instr Function Exceli mall

Näide 1

Alustame esimese näitega. Sõnast Bangalore leia tegelase asend a.

Allpool kood täidab meie jaoks ülesande.

Kood:

 Sub Instr_Näide1 () Dim i Variant i = InStr ("Bangalore", "a") MsgBox i End Sub 

Nüüd käivitage ülaltoodud VBA-kood, kasutades klahvi F5, või saate seda koodi käitada ka käsitsi, nagu on näidatud allpool toodud ekraanipildil.

Väljund:

Näide 2

Nüüd leidke sõnast Bangalore märgi „a” asend kolmandalt positsioonilt.

Allolev kood täidab meie jaoks ülesande.

Kood:

 Sub Instr_Näide2 () Dim i Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Ülaltoodud koodi käivitamiseks võite kasutada klahvi F5 või käivitada selle koodi käsitsi, nagu on näidatud allpool toodud ekraanipildil.

Väljund:

Nüüd vaadake ülaltoodud pildil erinevust eelmisest koodist. Kuna oleme maininud märgi algusasendit 3, ignoreeris see 2. märgi esimest tähte “a” .

Näide # 3

Nüüd näeme väiketähti otsivat otsingut. Bangalore sõnas leidke A- täht .

Selleks peame pakkuma võrdlusargumendi kui vbBinaryCompare.

Kood:

 Sub Instr_Näide3 () Dim i Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub 

Nüüd käivitage see kood, kasutades klahvi F5, või saate seda koodi ka käsitsi käivitada.

Väljund:

Kuna oleme andnud argumendi võrdlus funktsiooni vbBinaryCompare Instr tagastas tulemuse nulliks, kuna suurtähte A ei eksisteeri.

Näide 4

Nüüd näeme veel ühte suurt tundlikku otsingut. Bangalore sõnas leidke A- täht . Eelmine näide andis tulemuseks nulli.

Selle juhtumitundliku lähenemisviisi ületamiseks peame pakkuma võrdlusargumenti vbTextCompare.

Kood:

 Sub Instr_Näide4 () Dim i Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Nüüd käivitage see kood, kasutades klahvi F5, või saate seda koodi ka käsitsi käivitada.

Väljund:

Näide 5

Nüüd näeme Instr-funktsiooni täiustatud taset. Kui teil on palju enam-vähem sarnase nimega lehti ja soovite kõik need lehed korraga peita, saame konkreetse lehe peitmiseks kasutada allolevat koodi.

Näiteks on mul 5 lehte nimega Kokkuvõte 1, Kokkuvõte 2, Kokkuvõte 3, Kokkuvõte 4 ja Andmeleht.

Nüüd tahan peita kõik need lehed, millel on sõna "Kokkuvõte". Kasutage allolevat koodi, et peita kõik lehed, mille nimes on sõna Kokkuvõte.

Kood:

 Sub To_Hide_Specific_Sheet () Tühjendage Ws töölehena ActiveWorkbooki iga W-le. Töölehed, kui InStr (Ws.Name, "Kokkuvõte")> 0 'Kui see leiab, siis peidetakse see End Sub 

Nüüd käivitage see kood, kasutades klahvi F5, või saate seda koodi ka käsitsi käivitada ja vaadata väljundit.

Sarnaselt kõigi nende lehtede peitmiseks kasutage allolevat koodi.

Kood:

 Sub To_UnHide_Specific_Sheet () Hämarda Ws iga W-i jaoks töölehena ActiveWorkbookis. Töölehed, kui InStr (Ws.Name, "Kokkuvõte")> 0 'Kui see leiab, siis peidetakse see End Sub 

Nüüd käivitage see kood, kasutades klahvi F5, või saate selle koodi ka käsitsi käivitada ja vaadata väljundit.

Asjad, mida meeles pidada

  • Instr on tõstutundlik funktsioon. Selle juhtumitundliku probleemi kõrvaldamiseks peate esitama argumendi [võrdle] kujul.
  • Kui otsite tõstutundlikku tähemärki, peate sisestama argumendi [võrdle], kuna vaikimisi võtab VBA seda argumendina ka siis, kui te seda ei esita.
  • Instr on VBA funktsioon, nii et te ei saa seda Exceli töölehel kasutada nagu teisi sisseehitatud valemeid.
  • Kui funktsioon ei leia stringi 2, on tulemus null.