VBA-ottelu - Kuinka käyttää ottelutoimintoa VBA Excelissä? (Esimerkkejä)

Sisällysluettelo

Samoin kuin laskentataulukossa on hakutoimintoina hakemisto Hakemisto ja Match, voimme myös käyttää VBA: n Match-funktioita hakutoimintona, tämä toiminto on laskentataulukko-funktio, jota sovellus käyttää. laskentataulukomenetelmä ja koska se on laskentataulukkofunktio, Match-funktion argumentit ovat samanlaisia ​​kuin laskentataulukko-funktio.

VBA-ottelutoiminto

VBA Match -toiminto etsii hakuarvon sijaintia tai rivinumeroa taulukon taulukossa, ts. Excelin päätaulukossa.

Taulukossa hakutoiminnot ovat erottamaton osa Excel-ohjelmaa. Jotkut tärkeistä hakutoiminnoista ovat VLOOKUP, HLOOKUP, INDEX ja MATCH. Valitettavasti meillä ei ole näitä toimintoja VBA-toimintoina. Voimme kuitenkin käyttää niitä VBA: n laskentataulukkotoimintoina.

Tässä artikkelissa näytän sinulle, kuinka yhtä laskentataulukon hakutoimintoa MATCH VBA: ssa käytetään laskentataulukko-funktiona.

Kuinka käyttää MATCH-toimintoa VBA Excelissä?

Näytämme sinulle yksinkertaisen esimerkin Excel MATCH -toiminnon käytöstä VBA: ssa.

Esimerkki 1

VBA: ssa voimme käyttää tätä MATCH-kaavaa Excelissä laskentataulukko-funktiona. Noudata seuraavia vaiheita käyttääksesi MBA-toimintoa VBA: ssa.

Vaihe 1: Luo alimenettely antamalla makron nimi.

Koodi:

Alavastaavuus_esimerkki1 ()

Vaihe 2: Tarvitsemme tuloksen E2-solussa, joten aloita koodi Range-alueena (“E2”). Arvo =

Koodi:

Alavastaavuus_esimerkki1 () Alue ("E2"). Arvo = Lopeta ali

Vaihe 3: Kohdassa E2 solun arvon tulisi olla MATCH-kaavan tulos. Joten pääsemään VBA MATCH -toimintoon meidän on ensin käytettävä ominaisuutta ”WorksheetFunction”. Tässä ominaisuudessa saamme kaikki käytettävissä olevat laskentataulukon toimintoluettelot.

Vaihe 4: Valitse MATCH-toiminto tästä.

Koodi:

Sub Match_Example1 () -alue ("E2"). Arvo = WorksheetFunction.Match (End Sub

Vaihe 5: Nyt ongelma alkaa, koska emme saa tarkkaa syntaksinimeä. Pikemminkin saamme syntaksin kuten "Arg1, Arg2, Arg3", kuten tämä. Joten sinun on oltava täysin varma syntaksista täällä.

Ensimmäinen argumenttimme on HAKUARVO. KATSELUARVO on solussa D2, joten valitse solu Alueeksi (“D2”) .

Koodi:

Sub Match_Example1 () Alue ("E2"). Arvo = WorksheetFunction.Match (Alue ("D2"). Arvo, End Sub

Vaihe 6: Toinen argumentti on Table Array. Pöytäryhmäalueemme on välillä A2 - A10. Joten valitse alueeksi "Alue (" A2: A10 ")"

Koodi:

Alavastaavuus_esimerkki1 () Alue ("E2"). Arvo = LaskentataulukkoFunction.Match (Alue ("D2"). Arvo, Alue ("A2: A10"), Loppuosa

Vaihe 7: Viimeinen argumentti on nyt MATCH TYPE. Tarvitsemme tarkan vastaavuuden, joten syötä argumentin arvoksi nolla.

Koodi:

Alavastaavuus_esimerkki1 () Alue ("E2"). Arvo = LaskentataulukkoFunction.Match (Alue ("D2"). Arvo, Alue ("A2: A10"), 0) Loppuosa

Suorita makro, niin saat sijainnin riippumatta siitä, minkä vuosinimen solussa D2 on.

Esimerkki # 2 - VBA-ottelu toisesta taulukosta

Oletetaan, että sama datajoukko yllä olevasta on kahdella eri arkilla. Esimerkiksi taulukon taulukko on taulukon nimessä "Data Sheet" ja Hakutaulukko on taulukon nimessä "Result Sheet".

Tässä tapauksessa meidän on viitattava laskentataulukoita sen nimellä ennen kuin viitataan alueisiin. Alla on joukko koodeja arkkien nimillä.

Koodi:

Alavastaavuus_esimerkki2 () Arkit ("Tulosarkki"). Alue ("E2"). Arvo = WorksheetFunction.Match (Arkit ("Tulossivu"). Alue ("D2"). Arvo, Arkit ("Tietolomake"). Alue ("A2: A10"), 0) End Sub

Esimerkki # 3 - VBA-ottelutoiminto silmukoilla

Jos haluamasi tulos on yksi solu, niin ei ole ongelmaa, mutta jos tuloksen on oltava useammassa kuin yhdessä solussa, meidän on käytettävä VBA-silmukkaa saadaksesi tuloksen kaikkiin soluihin.

Oletetaan, että sinulla on tällaisia ​​tietoja.

Näissä tapauksissa pitkien koodien kirjoittaminen on herculean tehtävä, joten vaihdamme silmukoihin. Alla on joukko koodeja, jotka tekevät työn meille.

Koodi:

Sub Match_Example3 () Dim k kokonaislukuna k = 2-10 soluun (k, 5) .Arvo = WorksheetFunction.Match (solut (k, 4) .arvo, alue ("A2: A10"), 0) Seuraava k End Sub

Tämä koodisarja saa tuloksen vain silmänräpäyksessä.

Mielenkiintoisia artikkeleita...