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 -malliEsimerkki 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ä.