VBA-indeksiottelu | Hakukohdistustoiminnon käyttäminen VBA: ssa (esimerkkejä)

Hakutulos VBA: ssa

INDEKSI- JA MATCH-toiminto VBA-yhdistelmässä on vaihtoehto Excelin VLOOKUP-toiminnolle. VBA: ssa emme ole ylellisyyttä käyttää INDEX & MATCH -toimintoa suoraan, koska nämä kaksi toimintoa eivät ole osa VBA: n sisäänrakennettuja toimintoja. Voimme kuitenkin edelleen käyttää niitä osana laskentataulukon funktioluokkaa.

Kuinka käyttää hakutermiä VBA: ssa? (Askel askeleelta)

Voit ladata tämän VBA Index Match Excel -mallin täältä - VBA Index Match Excel -malli

Katso esimerkiksi alla olevia tietoja.

Yllä olevissa tiedoissa hakuarvo on osaston nimi, ja tämän osaston nimen perusteella meidän on poimittava palkan määrä.

Mutta ongelma tässä on tulos sarake on ensimmäisessä ja hakuarvo sarake on sen jälkeen tulos sarake. Tässä tapauksessa VLOOKUP ei voi noutaa palkan määrää, koska VLOOKUP toimii vain oikealta vasemmalle eikä vasemmalta oikealle.

Näissä tapauksissa meidän on käytettävä VBA INDEX & MATCH -funktion yhdistelmäkaavaa. Suoritetaan tehtävä löytää jokaisen osaston palkkamäärä VBA-koodista.

Vaihe 1: Aloita aurinkorutiini.

Vaihe 2: Ilmoita VBA-kokonaisluku-muuttuja.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k As Integer End Sub 

Vaihe 3: Avaa nyt Seuraava Loop -sovellus VBA: ssa.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 Seuraava k k Sub 

Vaihe 4: Suorita kaava VBA-silmukan sisällä. Viidennessä sarakkeessa meidän on sovellettava kaavaa, joten koodi on CELLS (k, 5) .Arvo =

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2 - 5 solua (k, 5). Arvo = Seuraava k End Sub 

Vaihe 5: Tässä solussa on sovellettava VBA INDEX & MATCH -kaavaa. Kuten kerroin, meidän on käytettävä näitä toimintoja laskentataulukko-funktiona vba-luokassa, joten avaa laskentataulukon funktioluokka.

Koodi:

Alahakemisto INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5) .Arvo = WorksheetFunction. Seuraava k End Sub

Vaihe 6: Kun olet syöttänyt laskentataulukon toimintoluokan, voimme nähdä kaikki käytettävissä olevat laskentataulukko-toiminnot, joten valitse INDEX-toiminto.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5) .Arvo = WorksheetFunction.Index (Seuraava k End Sub 

Vaihe 7: Kun käytät laskentataulukkofunktiota VBA: ssa, sinun on oltava täysin varma kaavan argumenteista. Ensimmäinen argumentti on matriisi eli mistä sarakkeesta tarvitsemme tuloksen, tässä tapauksessa tarvitsemme tuloksen välillä A2 - A5.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5) .Arvo = WorksheetFunction.Index (alue ("A2: A5"), seuraava k End Sub 

Vaihe 8: Seuraava on, mistä rivinumerosta tarvitsemme tuloksen. Kuten olemme nähneet aikaisemmassa esimerkissä, emme voi antaa rivinumero aina manuaalisesti. Joten käytä MATCH-toimintoa.

Jotta voisimme käyttää MATCH-toimintoa jälleen, meidän on avattava laskentataulukon toimintoluokka.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5) .Arvo = WorksheetFunction.Index (alue ("A2: A5"), WorksheetFunction.Match (Seuraava k End Sub 

Vaihe 9: MATCH-toimintojen ensimmäinen argumentti on LOOKUP-arvo, tässä hakuarvo on osastojen nimet, se on siellä soluissa (2, 4).

Koska jokaisen rivinumeron on muututtava, voimme toimittaa muuttujan "k" manuaalisen rivinumeron 2 sijaan. Solut (k, 4).

Koodi:

 Alahakemisto INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2 - 5 solua (k, 5). Arvo = WorksheetFunction.Index (alue ("A2: A5"), WorksheetFunction.Match (solut (k, 5). Arvo, seuraava) k Lopeta ala 

Vaihe 10: Seuraavaksi meidän on mainittava osaston arvoalue eli alue ("B2: B5").

Koodi:

 Alahakemisto INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5). Arvo = WorksheetFunction.Index (alue ("A2: A5"), WorksheetFunction.Match (solut (k, 5). Arvo, alue) ("B2: B5"), 

Seuraava k

End Sub

Vaihe 11: Seuraavaksi aseta argumentti 0: ksi, koska tarvitsemme tarkan vastaavuuden ja suljet sulkeet.

Koodi:

 Ala INDEX_MATCH_Example1 () Dim k kokonaislukuna k = 2-5 soluun (k, 5) .Arvo = WorksheetFunction.Index (alue ("A2: A5"), WorksheetFunction.Match (solut (k, 4). Arvo, alue) ("B2: B5"), 0)) 

Seuraava k

End Sub

Ok, olemme valmiit koodaavan osan kanssa. Suoritetaan koodi, jotta tulos olisi sarakkeessa 5.

Joten saimme tuloksen.

Voimme käyttää tätä kaavaa vaihtoehtona VLOOKUP-toiminnolle.