Jak používat INDEX MATCH v aplikaci Excel VBA

  • Sdílet Toto
Hugh West

Můžete využít vestavěné funkce pracovního listu aplikace Excel, jako je např. Funkce VLOOKUP ... VÝBĚR funkce a Funkce PMT v kódu VBA a v aplikacích. Excel lze přistupovat k funkcím pracovního listu a používat je v aplikaci VBA kód ... jako je použití Funkce INDEX & amp; MATCH pracovního listu v kódu Excel VBA.

Proč byste měli používat Excel Pracovní list funkce ve vašem VBA kód ? Dobře rozšířit funkčnost kódu, který používáte. Také nemusíte vymýšlet vlastní funkce, pokud to opravdu nepotřebujete, pokud již daná funkce existuje. V podstatě stačí přistupovat k funkci, kterou potřebujete, protože již existuje, a pak není třeba znovu vynalézat kolo.

Začněme tedy příkladem, který ukazuje, jak používat INDEX MATCH s programem Excel VBA.

Využijeme INDEX a MATCH Funkce na adrese Excel VBA kód , aby bylo možné vytvořit jednoduchý formulář UserForm. Pomocí tohoto formuláře uživatel vybere jméno studenta a poté se načte a vrátí odpovídající pohlaví uvedeného studenta a barva očí.

Stáhnout cvičebnici

Stáhněte si cvičebnici a procvičte si ji.

INDEX-MATCH.xlsx

9 snadných kroků k použití INDEXU a MATCH v kódu VBA

Na stránkách INDEX a MATCH Funkce se ve vzorcích často používají v kombinaci, aby bylo možné provádět pokročilé vyhledávání. Jejich kombinace nabízí určité výhody oproti funkci VLOOKUP .

Již jsme se podrobně zabývali tím, jak používat INDEX a MATCH provádět pokročilé vyhledávání v Excel sešit jako přímý vzorec v pracovním listu, ve formátu předchozí tutoriál . Nyní se podíváme, jak používat funkci INDEX a MATCH Funkce společně v VBA kód , aby byla poskytnuta podobná funkčnost jako u vyhledávače Uživatelský formulář vytvoříme.

Krok 1: Použití funkcí INDEX a MATCH v souboru dat

  • Začínáme se dvěma listy v našem sešitě s povolenými makry. Jeden je prázdný list s názvem Uživatelský formulář , druhým je list s názvem Informace pro studenty , který obsahuje rozsah zobrazující jména studentů, odpovídající pohlaví a barva očí. jak je uvedeno níže.

Rychle si připomeňme, že pokud bychom chtěli použít funkci INDEX a MATCH Funkce v jednom vzorci, v aktuálním pracovním listu, který nám poskytne pohlaví jména studenta, kterého chceme vyhledat. Použili bychom následující vzorec:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • Po stisknutí CTRL-ENTER , dostaneme vrácenou hodnotu Females jako pohlaví, jak je uvedeno níže.

Krok 2: Změna názvu sloupce B na StudentNames

  • Nyní pojmenujeme rozsah A2: A31 , StudentNames jak je uvedeno níže.

  • Skrýt Informace pro studenty kliknutím pravým tlačítkem myši a výběrem možnosti Skrýt. Je dobré povrchně skrýt back-endové listy, které obsahují informace, které nechcete, aby uživatel upravoval nebo viděl.

Krok 3: Otevření okna Visual Basicu

  • Nyní, když je list UserForm aktivován, přejdeme na stránku Vývojář> Kód> Visual Basic abyste mohli otevřít Editor Visual Basic (VBE) .
  • Po vstupu do Rozhraní VBE , přejdeme na Insert, UserForm, jak je uvedeno níže.

Krok 4: Změna vlastností a přidání textových rámečků

  • Použití Vlastnosti Okno , přejmenujeme náš formulář na StudentLookup , změňte titulek na Vyhledat informace o studentovi, změňte položku BackColor na světle modrou a nastavte výšku na 300 px a šířku na 350 px. Pokud se okno Vlastnosti nezobrazuje, stiskněte tlačítko F4 na klávesnici, abyste ji mohli zobrazit.

  • Nyní vložíme štítek pomocí příkazu Toolbox (pokud se vám z nějakého důvodu nezobrazuje sada nástrojů, přejděte na Zobrazit, Toolbox ), změníme titulek na Choose a student a změníme položku BackColor na bílou. V tomto případě nastavíme písmo na hodnotu Georgia , styl písma na tučně , velikost písma na 12 a centrum zarovnání textu. Použitý speciální efekt bude 1- fmSpecialEffectRaised jak je uvedeno níže.

  • Nyní vložíme pod popisek combo box. Tento combo box pojmenujeme cmdStudentName a pro RowSource , typ Jména studentů.

  • Abyste viděli účinek nastavení RowSource výběrového seznamu, Klikněte na Běh Sub/UserForm tlačítko .
  • Nyní kvůli nastavení RowSource do pojmenovaného rozsahu, když uživatel klikne na šipku s rozbalovacím seznamem na formuláři UserForm, zobrazí se v combo boxu automaticky jména studentů z pojmenovaného rozsahu, jak je znázorněno níže.

  • Zavřete formulář UserForm kliknutím na tlačítko zavřít. Stiskněte tlačítko Alt-F11 abyste se mohli vrátit do VBE .
  • Po návratu do VBE , přidejte do formuláře UserForm další popisek (pod výběrové pole) a změňte hodnotu Titulek na Pohlaví a změníme BackColor na bílou. V tomto případě nastavíme písmo na hodnotu Georgia , styl písma na tučně , velikost písma na 12 a centrum zarovnání textu. Použitý speciální efekt bude 1- fmSpecialEffectRaised jak je uvedeno níže.

  • Vytvořit textové pole pod Pohlaví štítek a pojmenujte ji txtGender .
  • Přidat další štítek s názvem Eye Barva a textové pole s názvem txtEyeColour jak je uvedeno níže. Použijte stejné vlastnosti štítku jako u dvou dalších štítků, které byly do formuláře přidány dříve, aby bylo zajištěno, že se štítek Uživatelský formulář má jednotný vzhled.

  • Nyní Vyberte všechny ovládací prvky, přidané do Uživatelský formulář , dosud pomocí ovládacího tlačítka.

  • Středisko vodorovně, jak je znázorněno níže.

Přečtěte si více: Jak používat vzorec INDEX MATCH v aplikaci Excel (9 příkladů)

Podobná čtení

  • Excel INDEX MATCH Pokud buňka obsahuje text
  • Jak použít vzorec INDEX-MATCH v aplikaci Excel pro generování více výsledků
  • Součet indexů více řádků v aplikaci Excel (3 způsoby)
  • Naučte se programovat v programu Excel VBA & Makra (bezplatný výukový program - krok za krokem)
  • 22 příkladů maker v aplikaci Excel VBA

Krok 5: Přidání tlačítka ze sady nástrojů

  • Další, Přidat tlačítko do formuláře pomocí Toolbox . Změna . Název tlačítka na cmdLookUp ... BackColor na světle oranžovou, udržujte Tahoma písmo a změna styl na tučně , nakonec změňte Titulek tlačítka na Podívejte se na nahoru Student Podrobnosti na jak je uvedeno níže.

Krok 6: Vložení kódu VBA

  • Klikněte pravým tlačítkem myši na , nově přidané tlačítko a vybrat Zobrazit Kód .

  • Pro událost kliknutí na tlačítko zadejte následující kód:

 Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If 

Začneme prohlášením tři proměnné a přiřazení variantního datového typu těmto deklarovaným variantním datovým typům. Variantní datový typ je dobrý datový typ pro začátek. Protože při práci s datovým typem pracovní list funkce , nemusíte si být vždy jisti výstupy. Proto při začátcích používejte variantní datový typ.

Později je vhodné použít některý z dalších specifičtějších datových typů, např. celé číslo nebo řetězec. U pokročilejšího delšího kódu nevyužívá datový typ varianta paměť tak efektivně jako ostatní datové typy.

Proměnná a čerpat hodnotu z možnosti, kterou uživatel vybere v rozevíracím seznamu na obrazovce. Uživatelský formulář . Pokud není žádný výběr, jsou všechna ostatní textová pole prázdný .

Pokud vyberete jméno studenta z combo box na Uživatelský formulář, pak proměnná b čerpá hodnotu pomocí INDEX Pracovní list Funkce v kombinaci s MATCH Funkce v VBA kód, jak je uvedeno na obrázku.

Vyhledá hodnotu v podstatě stejnou syntaxí jako funkce pracovního listu. Při použití funkcí pracovního listu v aplikaci VBA ... VBA IntelliSense v tomto konkrétním případě není příliš intuitivní , proto se doporučuje znalost syntaxe získaná ze znalostí pracovního listu. Proměnná c čerpá hodnotu pomocí INDEX Pracovní list Funkce v kombinaci s MATCH Funkce v VBA kód, když uživatel vybere možnost z výběrového seznamu.

Proměnná b získává hodnotu z gender sloupec v pracovním listu, zatímco proměnná c získá hodnotu ze sloupce Barva očí v pracovním listu.

Textové pole pohlaví je vyplněno b a textové pole Barva očí je vyplněno hodnotou c hodnotu.

Přečtěte si více: Události aplikace Excel VBA (kompletní průvodce)

Krok 7: Vložení příkazového tlačítka

  • Nyní přejděte na pracovní list s názvem Uživatelský formulář v sešitě. Formát jak je uvedeno níže, a vložit obrázek poskytnutý ExcelWIKI .

  • Přejít na Vývojář> Ovládací prvky> Vložit> Ovládací prvky ActiveX.

  • Vložte tlačítko, jak je znázorněno na obrázku.

  • Po výběru tlačítka, přejít na Vývojář> Ovládací prvky> Vlastnosti .

  • Změna na Název tlačítka na cmdShowForm a Titulek na Vyhledávání Informace pro studenty .

Krok 8: Zobrazení kódu vyhledávání

  • Klikněte pravým tlačítkem myši na tlačítko a vybrat Zobrazit kód jak je uvedeno níže.

  • Zadejte následující kód:
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

Krok 9: Vystavení konečného výsledku

  • Návrat na na pracovní list. Ujistěte se, že nezaškrtnuté políčko Design Režim .
  • Klikněte na tlačítko, aby se zobrazil formulář.

  • Vyberte jméno studenta pomocí combo box . Kód automaticky vrátí pohlaví a barvu očí studenta.

Nezapomeňte uložit sešit jako sešit s povolenými makry , pokud jste tak ještě neučinili, a tady to máte, používáme Funkce INDEX & amp; MATCH pracovního listu v kódu Excel VBA za účelem vytvoření vyhledávacího formuláře.

Přečtěte si více: Vzorec INDEX-MATCH aplikace Excel pro horizontální vrácení více hodnot

Závěr

Aplikace Excel má mnoho užitečných funkce pracovního listu , které lze využít v VBA , jako například pomocí Funkce INDEX & amp; MATCH pracovního listu v kódu Excel VBA. Tyto funkce vám umožní rozšířit VBA kód. Pokud již víte, jak fungují ve standardním systému. Excel pracovní list, pak křivka učení není tak velký tím, že přizpůsobí znalosti pro VBA . Přístup k funkcím pracovního listu, ve svém VBA kód může být skutečnou úsporou času. Protože člověk nemusí vyvíjet vlastní funkce pro funkce, které již existují.

Neváhejte a napište nám, zda ve svém kódu a aplikacích VBA používáte funkce pracovního listu.

Kontrolní část: Otestujte si své znalosti

1) Ve sloupci A nastavte jednoduchý seznam tří položek, a to mandarinek, mrkve a pomerančů, poté v buňce vedle každé položky ve sloupci B uveďte, zda položky ve sloupci A jsou ovoce nebo zelenina, po dokončení nastavení vzorových dat použijte příkaz INDEX & MATCH kombinace funkcí, které umožňují zjistit, zda je mrkev ovoce nebo zelenina.

2) Použijte tento soubor dat od ESPN o hlavních trenérech NFL a příslušných týmech, které trénují. Vytvořte uživatelský formulář, který umožní uživateli zadat jméno určitého trenéra do textového pole. Poté nechte v dalším textovém poli zobrazit tým, který trénuje, když uživatel klikne na tlačítko odeslat. Použijte INDEX & MATCH kombinace funkcí pracovního listu v kódu VBA.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.