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

Sisällysluettelo

Hakutulos VBA: ssa

INDEKSI- JA MATCH-toiminto VBA-yhdistelmässä on vaihtoehto Excelin VLOOKUP-toiminnolle. VBA: ssa meillä ei 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)

Katso esimerkiksi alla olevia tietoja.

Yllä olevissa tiedoissa hakuarvo on osaston nimi, ja tämän osaston nimen perusteella meidän on erotettava 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, ei 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 Next Loop VBA: ssa.

Koodi:

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

Vaihe 4: Suorita kaava VBA-silmukan sisällä. On 5 : nnen sarakkeen, meidän täytyy käyttää kaavaa, joten koodi on SOLUJEN (k, 5) .Value =

Koodi:

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

Vaihe 5: Tässä solussa on sovellettava VBA INDEX & MATCH -kaavaa. Kuten sanoin, 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 laskentataulukon 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 taulukkofunktiota VBA: ssa, sinun on oltava täysin varma kaavan argumenteista. Ensimmäinen argumentti on taulukko 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 edellisessä 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 aina, kun rivinumeron on muututtava, voimme toimittaa muuttujan "k" manuaalisen rivinumeron 2 sijasta. 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: Aseta seuraavaksi argumentiksi 0, koska tarvitsemme tarkan vastaavuuden ja sulje sulkeet.

Koodi:

Alahakemisto 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.

Mielenkiintoisia artikkeleita...