VBA InStr | 5 suosituinta esimerkkiä Excel VBA InStr -funktion käytöstä

Excel VBA InStr -toiminto

Instrumenttia VBA: ssa käytetään tietyn merkkijonon sijainnin selvittämiseen merkkijonossa sen jälkeen, kun määritetään vertailumenetelmä funktiolle, tälle toiminnolle on neljä erilaista vertailumenetelmää, Instr on merkkijonofunktio, mutta funktion palauttama lähtö on numeerinen, joten tämän funktion tulos on kokonaislukumuuttuja.

Merkkijono VBA: ssa ei ole muuta kuin sarja merkkejä, ts. Kaikki tekstit, jotka toimitetaan lainausmerkeillä, 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äyttää InStr.

Syntaksi

Siinä on 4 argumenttia alla olevan kuvan mukaisesti.

  • [Aloita]: 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ä. Esimerkiksi: jos haluat hakea merkkiä "a" sanassa "Bangalore" kolmannesta sijasta, meidän on kerrottava Instr-funktion aloitusasennoksi 3. Joten 3. sijasta merkin "a" on 5. sija. Jos ohitat tämän parametrin, oletusarvo on 1.
  • Merkkijono 1: Tämä on todellinen merkkijono, jonka toimitamme, ts. Tästä tekstistä yritämme löytää alimerkkijonon. Esimerkiksi, jos etsit merkkijonoa ”a” in ”Bangalore”, String 1 Bangaloressa.
  • Jono 2: Tämä ei ole mitään muuta kuin mitä merkkijono etsimme. Esimerkiksi, jos etsit merkkijonoa ”a” in ”Bangalore”, lankaa 2 .
  • [Vertaa]: Tämä on jälleen valinnainen argumentti. [Vertaa] -argumentissa on kolmenlaisia ​​vaihtoehtoja.

  • vbBinaryCompare: Tämä on vain isot ja pienet kirjaimet etsimään osamerkkijono (merkkijono 2) String 1. Esimerkiksi jos etsimme ”a” sanassa ”Bangalore” instr palaisi 2 seurauksena ja jos etsit for ”A” on sana ”Bangalore” instr palaisi 0 seurauksena, koska mukana tuleva merkkijono on isoilla kirjaimilla arvoa.

Voimme myös asettaa argumentin nollan (0).

vbTextCompare: Tämä ei ole merkkijonon 2 merkkijono 2-merkkijono merkkijonossa 1. Esimerkiksi jos etsimme sanaa " a" sanasta "Bangalore", 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ä

Voit ladata tämän VBA Instr Function Excel -mallin täältä - VBA Instr Function Excel -malli

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 = InStr ("Bangalore", "a") MsgBox i End Sub 

Suorita nyt yllä annettu VBA-koodi F5-näppäimellä tai voit myös suorittaa tämän koodin manuaalisesti alla olevan kuvakaappauksen mukaisesti.

Tuotos:

Esimerkki 2

Etsi nyt sanasta Bangalore hahmon "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 alla olevan kuvakaappauksen mukaisesti.

Tuotos:

Katso nyt edellisestä kuvasta ero edelliseen koodiin. Koska olemme maininneet merkin aloituspaikan 3: ksi, se jättää huomiotta ensimmäisen merkin “a” toisessa paikassa.

Esimerkki 3

Nyt näemme kirjainkoolla haun. Etsi sanasta Bangalore A- kirjain .

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 nyt tämä koodi käyttämällä F5-avainta tai voit suorittaa tämän koodin myös manuaalisesti.

Tuotos:

Koska olemme toimittaneet vertaa-argumentin, koska vbBinaryCompare Instr -funktio palautti tuloksen nollaksi, koska isoja kirjaimia A ei ole olemassa.

Esimerkki 4

Nyt näemme vielä yhden kirjainkokoisen haun. Etsi sanasta Bangalore A- kirjain . Edellinen esimerkki palautti tuloksen nollaksi.

Jotta kirjainkoon huomioon ottava lähestymistapa voidaan voittaa tässä, meidän on annettava vertailuperuste vbTextCompare-muodossa.

Koodi:

 Sub Instr_Example4 () Dim i Variantti i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Suorita nyt tämä koodi käyttämällä F5-avainta tai voit suorittaa tämän koodin myös manuaalisesti.

Tuotos:

Esimerkki 5

Nyt näemme Instr-toiminnon edistyneen tason. Jos sinulla on useita arkkeja, joilla on enemmän tai vähemmän samanlainen nimi ja haluat piilottaa kaikki nuo taulukot kerralla, voimme käyttää alla olevaa koodia piilottaaksesi tietyn arkin.

Minulla on esimerkiksi 5 arkkia nimeltä Yhteenveto 1, Yhteenveto 2, Yhteenveto 3, Yhteenveto 4 ja Tietolomake.

Nyt haluan piilottaa kaikki ne taulukot, joissa on sana "Yhteenveto". Käytä alla olevaa koodia piilottaaksesi kaikki taulukot, joiden nimessä on sana Yhteenveto.

Koodi:

 Sub To_Hide_Specific_Sheet () Himmennä Ws laskentataulukoksi jokaiselle ActiveWorkbookin W: lle. Työarkit, jos InStr (Ws.Name, "Yhteenveto")> 0 Sitten Ws.Visible = xlSheetVeryHidden End Jos Next Ws: n InStr-funktio etsii sanaa tai lauseita taulukon nimestä 'Jos se löytää, se piilotetaan End Sub 

Suorita nyt tämä koodi F5-näppäimellä tai voit myös suorittaa tämän koodin manuaalisesti ja nähdä tuotoksen.

Vastaavasti kaikkien näiden arkkien piilottamiseksi käytä alla olevaa koodia.

Koodi:

 Sub To_UnHide_Specific_Sheet () Himmennä Ws laskentataulukoksi jokaiselle ActiveWorkbookin W: lle. Työarkit, jos InStr (Ws.Name, "Yhteenveto")> 0 Sitten Ws.Visible = xlSheetVisible End Jos Next Ws: n InStr-funktio etsii sanaa tai lauseita taulukon nimestä 'Jos se löytää, se piilotetaan End Sub 

Suorita nyt tämä koodi F5-näppäimellä tai voit myös suorittaa tämän koodin manuaalisesti ja nähdä tuotoksen.

Muistettavaa

  • Instr on kirjainkoon mukainen toiminto. Tämän tapauksen kannalta arkaluontoisen ongelman poistamiseksi sinun on annettava [vertaa] argumentti muodossa.
  • Jos etsit kirjainkoolla merkkiä, sinun on annettava [vertaa] argumentti, koska oletusarvoisesti VBA pitää tätä argumenttina, vaikka et toimitakaan.
  • 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.

$config[zx-auto] not found$config[zx-overlay] not found