Pokud chcete vytvořit řídicí panel s grafem, který mění jeho data podle vybraných možností, můžete použít události ve VBA. Ano, dá se to zvládnout. Nebudeme potřebovat žádný rozevírací seznam, kráječ ani pole se seznamem. Zajistíme kliknutí buněk a změnou dat vytvoříme graf z vybrané buňky.
Chcete -li vytvořit dynamické grafy v aplikaci Excel, které se mění podle výběru buňky, postupujte podle následujících pokynů.
Krok 1: Připravte data v listu jako zdroj pro graf.
Zde mám několik ukázkových dat z různých oblastí v listu. Pojmenoval jsem to zdrojová data.
Krok 2: Získejte data jedné oblasti najednou na jiný list.
- Nyní vložte nový list. Vhodně to pojmenujte. Pojmenoval jsem to jako „Dashboard“.
- Zkopírujte všechny měsíce do jednoho sloupce. Napište název jednoho regionu vedle měsíce.
- Nyní chceme načíst data oblasti v buňce D1. Chceme, aby se data měnila se změnou regionu v D1. K tomu můžeme použít obousměrné vyhledávání.
Protože moje zdrojová data jsou v A2: D8 na zdrojovém listu. Používám níže uvedený vzorec.
=VLOOKUP(C2, 'Zdrojová data'! $ A $ 2: $ D $ 8,ZÁPAS($ D $ 1, 'Zdrojová data'! $ A $ 1: $ D $ 1,0)) |
Zde používáme dynamické indexování sloupců pro VLOOKUP. Můžete si o tom přečíst zde.
- Vložte tabulku s použitím těchto údajů na list řídicího panelu. Používám jednoduchý spojnicový graf. Pokud je nechcete zobrazit, skryjte zdroj grafu.
Nyní, když změníte název oblasti v D1, graf se odpovídajícím způsobem změní. Dalším krokem je změna názvu oblasti v D1 při výběru možnosti ze zadané buňky.
Krok 3: Při výběru názvu oblasti v zadaném rozsahu změňte oblast.
- Napište všechny názvy regionů do rozsahu, já je napíšu do rozsahu A2: A4.
- Klikněte pravým tlačítkem na název listu řídicího panelu a kliknutím na možnost „Zobrazit kód“ zadejte přímo do modulu listu ve VBE, abychom mohli použít událost listu.
- Nyní napište níže kód do VB Editoru.
Soukromý dílčí pracovní list_Volba výběru (ByVal Cíl jako rozsah) Pokud není protínat (Cíl, Rozsah („A2: A4“)) není nic než rozsah („A2: A4“). Interior.ColorIndex = xlColorIndexNone Dim region jako oblast varianty = Target.value On Error GoTo err: Select Case region Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1 ") .value = region Case Else MsgBox" Neplatná možnost "End Select Target.Interior.ColorIndex = 8 End If err: End Sub
A je hotovo. Nyní, kdykoli vyberete buňku v rozsahu A2: A4, její hodnota bude přiřazena k D1 a data grafu se podle toho změní.
Níže jsem vysvětlil, jak tento kód funguje. Můžete to pochopit a provádět změny podle svého požadavku. Poskytl jsem odkazy na témata nápovědy, která jsem zde použil v tomto příkladu. Tak se na ně podívejte.
Jak kód funguje?
Zde jsem použil událost aplikace Excel. Ke spuštění událostí jsem použil událost v listu „SelectionChange“.
Pokud se neprotíná (cíl, rozsah („A2: A4“)), pak není nic
Tento řádek nastaví fokus na rozsah A2: A4, aby se událost SelectionChange spustila pouze v případě, že je výběr v rozsahu A2: A4. Kód mezi If a End se spustí pouze v případě, že je výběr v rozsahu A2: A4. Nyní jej můžete nastavit podle svých požadavků, aby byl graf dynamický.
Rozsah ("A2: A4"). Interior.ColorIndex = xlColorIndexNone
Tato čára nastaví barvu v rozsahu A2: A4 na nic.
region = Target.value On Error GoTo err:
Ve výše uvedených dvou řádcích získáme hodnotu vybraných buněk v proměnné oblasti a ignorujeme jakoukoli chybu, ke které dojde. nepoužívejte řádek „On Error GoTo err:“, dokud si nejste jisti, že chcete ignorovat jakoukoli chybu, ke které dojde. Použil jsem to, abych se vyhnul chybě, když vyberu více buněk.
Vyberte oblast Case Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1"). Value = region Case Else MsgBox "Neplatná možnost" Konec Vybrat
Ve výše uvedených řádcích používáme excels Select Case Statement k nastavení hodnoty rozsahu D1.
Target.Interior.ColorIndex = 8 End If err: End Sub
Před příkazem End If změníme barvu vybrané možnosti, aby byla zvýrazněna. Pak příkaz If končí a začíná chyba: err. Příkaz On Error přeskočí na tuto značku, pokud během příkazu select dojde k jakékoli chybě.
Stáhněte si pracovní soubor níže.
Události vloženého grafu pomocí VBA v aplikaci Microsoft Excel| Díky událostem vložených grafů může být váš graf interaktivnější, dynamičtější a užitečnější než běžné grafy. Abychom umožnili události na grafech,…
Události v aplikaci Excel VBA |V aplikaci Excel je sedm typů událostí. Každá událost se zabývá jiným rozsahem. Událost aplikace se zabývá na úrovni sešitu. Sešit na úrovni listů. Pracovní list Událost na úrovni rozsahu.
Události listu v aplikaci Excel VBAZpět nahoru Dejte nám zpětnou vazbu Řešení Událost listu je opravdu užitečná, když chcete, aby se vaše makra spustila, když na listu dojde k zadané události.
Události sešitu pomocí VBA v Microsoft Excelu | Události sešitu fungují na celém sešitu. Protože jsou všechny listy součástí sešitu, fungují na nich i tyto události.
Zabraňte spuštění automacro/eventmacro pomocí VBA v Microsoft Excelu| Chcete -li zabránit spuštění makra auto_open, použijte klávesu shift.
Události objektů grafu pomocí VBA v aplikaci Microsoft Excel| Grafy jsou složité objekty a je k nim připojeno několik komponent. K vytváření Chart Events používáme modul Class.
Oblíbené články:
50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 zkratek vám v Excelu práci ještě zrychlí.
Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.
COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty není nutné filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.
Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.