Excel VBA se protíná

VBA Průnik v matematice nebo v geometrii znamená, když se dvě nebo více čar nebo oblastí protíná. Společný bod nebo oblast vytvořená poté se nazývá průnikový bod nebo oblast. V Excelu také můžeme zvýraznit a změřit oblast průniku.

Syntaxe průnikové funkce v Excelu VBA

Funkce Průnik má v Excelu VBA následující syntaxi:

Jak vidíme, Arg1 a Arg2 jsou zmíněny, Range. A zbytek argumentů je uveden v závorce. Což znamená, že první dva argumenty musí být vybrány jako Range. Nebo jinými slovy, pro nalezení průniku musí být zahrnuty minimálně 2 oblasti. Zbytek argumentů lze vybrat jako Range nebo to může zahrnovat některé další věci nebo parametry a podle potřeby. Tato syntaxe může pojmout maximálně 30 argumentů.

Jak používat průnikovou funkci Excel VBA?

Naučíme se, jak používat funkci VBA Intersect s několika příklady v Excelu.

Tuto šablonu VBA Intersect Excel si můžete stáhnout zde - VBA Intersect Excel Template

VBA průnik - Příklad č. 1

V prvním příkladu zvýrazníme a vytvoříme průnikovou oblast, když máme nějakou datovou sadu. K tomu máme ukázková data, která mají 3 sloupce plné čísel, jak je uvedeno níže.

Nyní musíme najít průsečík výše uvedené tabulky dat pomocí VBA Intersect. Postupujte podle následujících kroků:

Krok 1: Přejděte do okna VBA a otevřete modul z nabídky Vložit, jak je uvedeno níže.

Dostaneme prázdné okno modulu.

Krok 2: Nyní pište podkategorii VBA Intersect nebo do jakéhokoli jiného jména dle vašeho výběru.

Kód:

 Sub VBAIntersect1 () End Sub 

Krok 3: Nyní přímo vložte příkaz Intersect, jak je znázorněno níže.

Kód:

 Sub VBAIntersect1 () Průnik (End Sub 

Jak jsme již vysvětlili podrobnou syntaxi Intersect, přidáme oblast průniku. Můžeme zvolit N počet rozsahů, ale měly by tam být minimálně dvě rozsahy.

Podívejme se na průsečík, kde první oblast je od A1 do B8, druhá oblast je B3 až C12 a třetí oblast je A7 až C10. Můžeme zvážit a zvolit jakoukoli kombinaci vzoru křižovatek.

Nyní se podívejme, v jakém bodě se tyto oblasti setkávají a protínají. Společná oblast vytvořená všemi výše uvedenými oblastmi bude naší křižovatkou.

Krok 4: Nyní v VBA modulu průniku vyberte první oblast, jak je ukázáno níže.

Kód:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8") End Sub 

Přidali jsme první řadu, ale naše syntaxe je stále neúplná.

Krok 5: Nyní vložte další dvě oblasti, které jsme diskutovali výše, oddělené čárkami.

Kód:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) End Sub 

Krok 6: Nyní zadejte podmínku jako „True“.

Kód:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")) = True End Sub 

Tím je náš kód dokončen.

Krok 7: Nyní zkompilujte kód a spusťte kliknutím na tlačítko Přehrát, které se nachází pod nabídkovým pruhem, jak je znázorněno níže.

Dostaneme společnou oblast nebo průnikovou oblast, která má hodnotu PRAVDA, jak je uvedeno výše. Přestože jsme získali průnikovou oblast, tato PRAVDA nahradila data, která se v průnikové oblasti vyskytovala.

Krok 8: Abychom se tomu vyhnuli, můžeme změnit barvu pozadí, tyto společné buňky na jakoukoli barvu dle našeho výběru. K tomu po syntaxi Intersect použijte funkci Interiér spolu s Barvou, jak je ukázáno níže.

Kód:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = End Sub 

Krok 9: Nyní ve VBA nemůžeme použít název barvy, kterou chceme použít přímo. K tomu je třeba přidat „ vb “, který se používá k aktivaci barev dostupných ve VBA. Nyní ji použijte a přidejte libovolný název barvy podle vašeho výběru. Vybereme zde zelenou, jak je znázorněno níže.

Kód:

 Sub VBAIntersect1 () Intersect (Range ("A1: B8"), Range ("B3: C12"), Range ("A7: C10")). Interior.Color = vbGreen End Sub Sub 

Krok 10: Nyní znovu zkompilujte napsaný kód najednou, protože je kód poměrně malý a spusťte jej.

Uvidíme, jak se barva průsečíku změní na Zelenou a společnou, která se vytvoří průnikem různých 3 oblastí v B7 až B8.

VBA průnik - Příklad # 2

Existuje jiný, ale zcela odlišný způsob, jak používat VBA Intersect. Tentokrát použijeme průnik v konkrétním listu. V Listu 2 jsme označili oblast od B4 do E8, jak je ukázáno níže.

Postupujte podle následujících kroků:

Krok 1: Ve VBA přejděte na List2 aktuálního sešitu, jak je ukázáno níže.

Krok 2: Nyní vyberte list z této první rozevírací nabídky. To umožní použití kódu pouze v tomto aktuálním listu.

Krok 3: A z druhé rozevírací nabídky vyberte možnost Změnit, jak je uvedeno níže. Slouží k cílení změn provedených ve vybraném rozsahu.

Krok 4: Náš kód zapíšeme pouze do první podkategorie.

Kód:

 Soukromý dílčí list_změna (ByVal Target As Range) End Sub 

Krok 5: Použijeme smyčku If-Else pro vytvoření podmínky pro průnikovou funkci.

Kód:

 Private Sub Worksheet_Change (ByVal Target As Range) If End If End End 

Krok 6: Nejprve vyberte cílový rozsah od B4 do E8, jak je ukázáno níže. To se zaměří zejména na průnik oblasti obsažené v B4 až E8.

Kód:

 Soukromý dílčí pracovní list_Změna (ByVal Target As Range) Pokud se protíná (Target, Range ("B4: E8"))) End If End Sub 

Krok 7: A pokud v cílové oblasti není nic, musíme napsat prohlášení, které přesměruje kód dopředu.

Kód:

 Soukromý dílčí pracovní list_Změna (ByVal Target As Range) Pokud se protínají (Target, Range ("B4: E8"))), pak nic nekončí, pokud End Sub 

Krok 8: A pokud je cíl skutečně mimo dosah, můžeme použít okno se zprávou s upozorněním, jak je ukázáno níže.

Kód:

 Private Sub Worksheet_Change (ByVal Target As Range) Pokud se protíná (Target, Range ("B4: E8"))), nic není, pak MsgBox "Out of Range" End if End Sub 

Krok 9: A ve výpisu Else, kde je něco napsané uvnitř pole, pak bychom měli dostat rychlou zprávu, pokud je psaný obsah uvnitř pole, jak je ukázáno níže.

Kód:

 Private Sub Worksheet_Change (ByVal Target As Range) Pokud se protínají (Target, Range ("B4: E8"))), nic není MsgBox "Mimo rozsah" Els MsgBox "V rozsahu" End If End Sub 

Krok 10: Nyní zkompilujte každý krok psaného kódu a zavřete pracovní list VBA. Jak jsme napsali kód specifický pro list, bude to fungovat stejně.

Krok 11: Nyní něco napište do krabice.

Jak vidíme, psali jsme 2 do buňky C5 uvnitř pole, dostali jsme zprávu nebo „ Uvnitř rozsahu “.

Krok 12: Opět něco napište z krabice. Napsali jsme 1 v buňce B10 a dostali jsme zprávu „Mimo rozsah“, jak je ukázáno níže.

Toto je další způsob použití průniku v aplikaci Excel VBA.

Výhody aplikace Excel VBA se protínají

  • Je velmi snadné alespoň zvýraznit oblast, která se protíná procesem z příkladu 1.
  • To je velmi užitečné tam, kde musíme filtrovat nebo pracovat na takovém typu dat, který má průnik z jiné oblasti, jako jsou data, vlastník atd.

Co si pamatovat

  • Nezapomeňte soubor uložit ve formátu Macro Enable Excel, aby kód fungoval při každém použití.
  • Zápis kódu do listu místo modulu, jak je znázorněno v příkladu 2, učiní kód použitelný pouze pro tento list. Tento kód nebude fungovat na žádném jiném listu.
  • Použití cílového rozsahu, jak je znázorněno v příkladu 2, je užitečné při určování oblasti, která se má zasáhnout.

Doporučené články

Toto je průvodce VBA Intersect. Zde diskutujeme o tom, jak používat Excel VBA Intersect Function spolu s několika praktickými příklady a stahovatelnou šablonou Excel. Můžete si také prohlédnout naše další doporučené články -

  1. Příklady na smyčky VBA
  2. Sloupec Excel na číslo
  3. VBA do smyčky
  4. Vytvořte rozpočet v Excelu

Kategorie: