Excel VBA - Únia a križovatka

Excel VBA má dve metódy, patriace k objektu Application, na manipuláciu s dvoma alebo viacerými rozsahmi: Union a Intersect.

Únie

Metóda Union vráti ako argument všetky bunky v dvoch alebo viacerých rozsahoch.

Nasledujúci príkaz vyberie rozsah zobrazený na obrázku nižšie:

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

Rozsahu vrátenému metódou Union môžete priradiť akúkoľvek hodnotu alebo vzorec:

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

Tým sa zadá hodnota 10 do každej bunky v Únii.

Okolo metódy Únie môžete zabaliť akúkoľvek funkciu, ktorá sumarizuje rozsah. Nasledujúci príklad vráti súčet hodnôt v rozsahu A1: B4 a B3: C6:

1 Výsledok = Application.WorksheetFunction.Sum (zväzok (rozsah ("A1: B4"), rozsah ("B3: C6")))

Budete prekvapení, keď získate hodnotu vo výsledku 160! Aj keď je v Únii iba 14 buniek (8 v každom rozsahu, pričom 2 sú bežné), keď sa pozriete na výber, Union v skutočnosti vráti 16 buniek, a preto je výsledok 160.

Križovatka

Metóda Intersect vracia ako argument iba bežné bunky v dvoch alebo viacerých oblastiach.

Nasledujúci príkaz vyberie rozsah zobrazený (sivá oblasť) na obrázku nižšie:

1 Priesečník (rozsah („A1: B4“), rozsah („B3: C6“)). Vyberte

Použitie Intersect

Najbežnejšie použitie Intersect je v udalostiach spojených s pracovným listom alebo zošitom. Používa sa na testovanie, či zmenené bunky alebo bunky patria do rozsahu záujmu. Nasledujúci príklad s overením, či sa bunky (bunky) zmenili (identifikované pomocou cieľa) a rozsah A1: A10 sú bežné, a ak sú, vykonajte potrebné opatrenia.

Objekt Intersect nevracia nič, ak neexistujú žiadne spoločné bunky, takže Intersect (Target, Range (“A1: A10”)) Is Nothing bude True, ak neexistujú žiadne spoločné bunky. Po pridaní podmienky nie je splnená podmienka True, iba ak výsledok testu Intersect (Target, Range („A1: A10“)) Is nothing is False, inými slovami cieľ a rozsah A1: A10 majú niektoré bunky spoločné.

12345 Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah)Ak sa nepretína (cieľ, rozsah („A1: A10“)), potom nie je nič„Vykonajte požadovanú akciuKoniec AkKoniec pod

Scenár: Vinamra Chandra

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave