Excel VBA - Union a Intersect

Excel VBA má dvě metody, patřící do objektu Application, k manipulaci se dvěma nebo více rozsahy: Union a Intersect.

svaz

Metoda Union vrací všechny buňky ve dvou nebo více oblastech předaných jako argument.

Následující příkaz vybere rozsah zobrazený na obrázku níže:

1 Union (rozsah („A1: B4“), rozsah („B3: C6“)). Vyberte

Rozsahu vrácenému metodou Union můžete přiřadit libovolnou hodnotu nebo vzorec:

1 Union (rozsah ("A1: B4"), rozsah ("B3: C6")) = 10

Tím zadáte hodnotu 10 do každé buňky v Unii.

Můžete zabalit jakoukoli funkci, která shrnuje rozsah kolem metody Union. Následující příklad vrátí součet hodnot v Rozsahech A1: B4 a B3: C6:

1 Výsledek = Application.WorksheetFunction.Sum (sjednocení (rozsah ("A1: B4"), rozsah ("B3: C6")))

Možná budete překvapeni, když ve výsledku získáte hodnotu 160! Ačkoli je v Unii pouze 14 buněk (8 v každém rozsahu, přičemž 2 jsou společné), když se podíváte na výběr, Union ve skutečnosti vrací 16 buněk, takže výsledek je 160.

Protnout se

Metoda Intersect vrací jako argument pouze společné buňky ve dvou nebo více rozsahech.

Následující příkaz vybere zobrazený rozsah (šedá oblast) na obrázku níže:

1 Průsečík (rozsah („A1: B4“), rozsah („B3: C6“)). Vyberte

Použití Intersect

Nejběžnější použití Intersect je v událostech spojených s pracovním listem nebo sešitem. Používá se k testování, zda změněné buňky nebo buňky patří do rozsahu zájmu. Následující příklad se zkontroluje, zda se buňka (buňky) změnily (identifikované Targetem) a rozsah A1: A10 jsou běžné a pokud jsou, proveďte příslušnou akci.

Intersect object returns nothing if there are no common cells so Intersect (Target, Range (“A1: A10”)) Is Nothing will be True, if there are no common cells. Pokud podmínku nepřidáte, bude to pravda pouze v případě, že výsledek testu Průsečík (Cíl, Rozsah („A1: A10“)) Nic není nepravdivý, jinými slovy Cíl a Rozsah A1: A10 mají některé buňky společné.

12345 Soukromý dílčí pracovní list_Změna (cíl podle cíle jako rozsah)Pokud se neprotíná (cíl, rozsah („A1: A10“)), není to nic„Udělejte požadovanou akciKonec IfEnd Sub

Autor: Vinamra Chandra

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave