Excel VBA -hakutoiminto
Excelissä olemme käyttäneet VLookupia monta kertaa. Juuri siinä Lisää-toiminnossa, jota käytetään hakemaan tai kartoittamaan kaikenlaisia arvoja, joita haluamme. Samoin VBA: lla on hakupalvelu, joka toimii samalla tavalla kuin Excel Vlookup. VBA-haku on joustava tietorakenne, koska sitä voidaan käyttää minkä tahansa arvon kartoittamiseen minkä tahansa tyyppisestä taulukkojärjestelmästä. Tämä tarkoittaa, että jos käytämme Excel Vlookup -sovellusta, niin emme pysty kartoittamaan oikean sarakkeen tietoja vasemman sarakkeen tietojen kanssa yhdessä syntaksissa. VBA-haussa ei kuitenkaan ole asianmukaista kartoitusrakennetta. Meidän on vain noudatettava VBA-hakuhakemuksen syntaksia. Jos syntaksi on tyytyväinen ja kehystetty oikein, voimme hakea arvot taulukon oikealta tai vasemmalta puolelta.
VBA-hakutoiminnon syntaksi:
Missä,
- Arg1 = Arvo, jota haluamme etsiä .
- Arg2 = Sarakkeiden tai taulukon alue, josta haluamme etsiä .
- Arg3 = Tulos Boolen tai Vektorina.
Kuinka käyttää hakutoimintoa Excel VBA: ssa?
Opimme käyttämään Excel-hakutoimintoa VBA-koodin avulla.
Voit ladata tämän VBA-haku Excel -mallin tästä - VBA-haku Excel -malliVBA-haku - esimerkki # 1
VBA-hakukoodin kirjoittamiseen on monia tapoja. Tässä esimerkissä näemme yksinkertaisen tavan kirjoittaa VBA-haku. Tätä varten meillä on alla olevan kuvan mukainen tietojoukko. Tässä taulukossa on kilpailujen lukumäärä ja kilpailijoiden keskimääräinen nopeus. Nyt käytämme näitä tietoja soveltaaksesi VBA-hakua alla olevassa taulukossa sinisillä otsikoilla A8 - B8. Tätä varten noudata seuraavia vaiheita:
Vaihe 1: Avaa moduuli Lisää-valikko-välilehdeltä alla olevan kuvan mukaisesti.
Vaihe 2: Kirjoita suoritetun työn osaprosessori kyseiseen moduuliin. Täällä olemme valinneet nimen VBA-hakuksi.
Koodi:
Sub VBA_Lookup1 () End Sub
Vaihe 3: Valitse ulostulosolu, josta meidän on näytettävä hakuarvo. Tässä solussa on B9, josta meitä etsitään nimelle “Aniket” liittyvällä arvolla, joka on hakuarvo.
Koodi:
Sub VBA_Lookup1 () Range ("B9"). Arvo End Sub
Vaihe 4: Käytämme nyt taulukkolaskutoimintoa ja valitsemme luetteloon sisäänrakennetun hakutoiminnon alla olevan kuvan mukaisesti.
Koodi:
Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup End Sub
Vaihe 5: Kun olemme valinneet hakutoiminnon, näemme Arg1, Arg2 ja Arg3 sen syntaksissa. Tätä varten laitamme ensin hakuarvoalueemme, joka on solu A9 Arg1: n sijasta.
Koodi:
Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, End Sub
Vaihe 6: Valitse nyt Arg2 : lle hakualue, joka on solusta A2: A5.
Koodi:
Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), End Sub
Vaihe 7: Valitse viimeinkin hakuarvoalueet, jotka ovat B2: sta B5: een Arg3: n sijasta.
Koodi:
Sub VBA_Lookup1 () Range ("B9"). Value = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), Range ("B2: B5")) End Sub
Vaihe 8: Suorita koodi painamalla F5-näppäintä tai napsauttamalla valikkonauhan alapuolella olevaa Play-painiketta. Me näemme, kuten hakutapahtumassa, nimellä “Aniket” suoritettujen kilpailujen lukumäärä on 7.
VBA-haku - esimerkki 2
On toinen tapa soveltaa hakutoimintoa Excel VBA: ssa. Tätä varten käytämme samoja tietoja, jotka olemme nähneet esimerkissä-1. Tätä varten noudata seuraavia vaiheita:
Vaihe 1: Kirjoita osaprosessori VBA-hakuun alla olevan kuvan mukaisesti.
Koodi:
Sub VBA_Lookup2 () End Sub
Vaihe 2: Määritä muuttuja merkkijonona, jota käytetään Nimi-sarakkeen kartoittamiseen.
Koodi:
Sub VBA_Lookup2 () himmennetään nimellä merkkijonon lopuna
Vaihe 3: Määritetyssä muuttujan nimessä käytämme Vlookup- sovellusta alla olevan kuvan mukaisesti.
Koodi:
Sub VBA_Lookup2 () himmennetty nimellä merkkijonona = Application.VLookup (End Sub
Vaihe 4: Oletetaan, että hakuarvon nimi on taulukossa “Ashwani”.
Koodi:
Sub VBA_Lookup2 () himmennetty nimellä merkkijonona = sovellus.VLookup ("Ashwani", loppu Sub
Vaihe 5: Ja alue on A1: stä C6: een Sheet1: stä.
Koodi:
Sub VBA_Lookup2 () himmennetty nimellä merkkijono = sovellus.VLookup ("Ashwani", arkki1.Range ("A1: C6"), lopussa Sub
Vaihe 6: Jos haluamme nähdä täällä ratsastajan “Ashwani” keskimääräisen nopeuden, meidän on kartoitettava solu Lookup-syntaksissa, joka on 3. sijalla.
Koodi:
Sub VBA_Lookup2 () himmennetty nimellä merkkijonona = sovellus.VLookup ("Ashwani", arkki1.Range ("A1: C6"), 3) End Sub
Vaihe 7: Nyt nähdäksesi ajajan “Ashwani” keskimääräisen nopeuden, voimme käyttää MsgBoxia ja Debug Print -toimintoa. Debug Print -sovelluksen käyttö on kuitenkin paljon parempi kuin MsgBox. Joten määritä virheen tulostaminen määritellyllä muuttujan nimellä.
Koodi:
Sub VBA_Lookup2 () Dim Name merkkijonona = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub Sub
Vaihe 8: Avaa nyt välitön ikkuna, joka on siellä Näytä- valikko-välilehdellä nähdäksesi tulosteen.
Vaihe 9: Käännä koodi ja suorita se. Nähdään, että haku on kartoittanut Ashwanin nopeudella ja noutanut sen välittömään ikkunaan nimellä 86 .
Koodi:
Sub VBA_Lookup2 () Dim Name merkkijonona = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub Sub
VBA-haku - esimerkki 3
Jos haluat käyttää hakutoimintoa excel VBA: ssa, noudata seuraavia vaiheita:
Vaihe 1: Kirjoita osaprosessori VBA-hakuun alla olevan kuvan mukaisesti.
Koodi:
Sub VBA_Lookup3 () End Sub
Vaihe 2: Ilmoita muuttujan nimi Nimi merkkijonona alla olevan kuvan mukaisesti.
Koodi:
Sub VBA_Lookup3 () himmennetään nimellä merkkijonon lopuna
Vaihe 3: Määritä nyt etsittävä nimi määritetylle muuttujan nimelle alla esitetyllä tavalla.
Koodi:
Sub VBA_Lookup3 () Dim Name merkkijonona = = Deepinder "End Sub
Vaihe 4: Käytä mitä tahansa sanaa määritelläksesi ja käyttääksesi hakua sanoa LUp . Ja käytä tässä taulukkolaskentatoimintoa Vlookupin kanssa kuten alla.
Koodi:
Sub VBA_Lookup3 () himmennetty nimellä merkkijonona = = Syvennys "LUp = Application.WorksheetFunction.VLookup (MsgBox" Keskimääräinen nopeus on: "& LUp End Sub
Vaihe 5: Käytä nyt samaa Vlookup-syntaksia kuin Excelissä. Aseta Arg1: ään Nimi-muuttuja, valitse sitten aluematriisi ja etsi arvo, jonka haluamme saada. Tässä sarakkeessa on 3, kuten alla on esitetty.
Koodi:
Sub VBA_Lookup3 () himmennetty nimellä merkkijonona nimellä = "Syvennys" LUp = Sovellus.WorksheetFunction.VLookup (nimi, Arkki1.Range ("A2: C6"), 3, Väärä) MsgBox "Keskimääräinen nopeus on:" & LUp lopp. Sub
Vaihe 6: Käytä nyt MsgBoxia nähdäksesi tulosteen.
Koodi:
Sub VBA_Lookup3 () himmennetty nimellä merkkijonona nimellä = "Syvennys" LUp = Sovellus.WorksheetFunction.VLookup (nimi, Arkki1.Range ("A2: C6"), 3, Väärä) MsgBox "Keskimääräinen nopeus on:" & LUp lopp. Sub
Vaihe 7: Käännä ja suorita koodi. Näemme nimessä ”Deepinder” keskimääräisen nopeuden olevan 88. Taulukossa sama arvo on annettu nimelle Deepinder.
Koodi:
Sub VBA_Lookup3 () himmennetty nimellä merkkijonona nimellä = "Syvennys" LUp = Sovellus.WorksheetFunction.VLookup (nimi, Arkki1.Range ("A2: C6"), 3, Väärä) MsgBox "Keskimääräinen nopeus on:" & LUp lopp. Sub
Plussat Excel VBA -hakutoiminnosta
- Se on yhtä helppo käyttää ja toteuttaa kuin säännöllisten Excel Vlookup -kaavojen käyttäminen Excelissä.
- Voimme käyttää minkä tahansa tyyppisiä alueita ja matriiseja VBA-hakuissa.
- VBA-hakua sovellettaessa on hyvin vähän tai ei lainkaan rajoituksia.
Muistettavat asiat
- Voimme käyttää hakua Vlookupin tilalle missä tahansa tilanteessa.
- Etsintävektorin ja tulosvektorin alueiden tulisi olla samat.
- Kun olet valmistanut sovelluksen, tallenna tiedosto makroetuksi -muodossa, jotta koodi säilyy.
- Ei ole pakollista asettaa tulossaraketta aina, kun se on hakuarvon oikealla puolella.
Suositellut artikkelit
Tämä on opas VBA-hakuun. Tässä keskustellaan siitä, kuinka voit käyttää Excel VBA -hakutoimintoa käytännön esimerkkien ja ladattavien Excel-mallien kanssa. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -
- VBA-kokoelma (esimerkkejä)
- VBA IF -lausunnot | Excel-mallit
- Kuinka käyttää Excel VBA -lajittelutoimintoa?
- VBA while Loop (esimerkkejä Excel-mallilla)
- VBA Environ