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

Samoin kuin laskentataulukossa on hakutoimintoina hakemisto Hakemisto ja Match, voimme myös käyttää VBA: n Match-toimintoja hakutoimintona, tämä toiminto on laskentataulukko-funktio, ja sovellus käyttää sitä. 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 eli Excelin päätaulukossa.

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

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

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: E2-solussa arvon tulisi olla MATCH-kaavan tulos. Joten VBA MATCH -toiminnon käyttämiseksi 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:

 Alavastaavuus_esimerkki1 () -alue ("E2"). Arvo = laskentataulukkoFunction.Match (loppuosa) 

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

Ensimmäinen argumenttimme on LOOKUP VALUE, LOOKUP VALUE 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, taulukon taulukon alue 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: Nyt viimeinen argumentti on 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 ("Tulossivu"). 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, 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ä.


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