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