Excel VBA - Unió és metszéspont

Az Excel VBA két, az Application objektumhoz tartozó módszerrel rendelkezik két vagy több tartomány manipulálására: Union és Intersect.

Unió

Az Union metódus az összes cellát két vagy több tartományban adja vissza argumentumként.

A következő parancs választja ki az alábbi képen látható tartományt:

1 Unió (tartomány ("A1: B4"), tartomány ("B3: C6")). Válassza ki

Bármilyen értéket vagy képletet rendelhet az Unió módszerrel visszaadott tartományhoz:

1 Unió (tartomány ("A1: B4"), tartomány ("B3: C6")) = 10

Ez a 10 értéket adja meg az Unió minden cellájában.

Bármely függvényt, amely összegzi a tartományt, körbecsomagolhatja egy uniós módszer köré. A következő példa az A1: B4 és B3: C6 tartomány értékeinek összegét adja vissza:

1 Eredmény = Application.WorksheetFunction.Sum (unió (tartomány ("A1: B4"), tartomány ("B3: C6")))

Meglepődhet, ha az eredmény 160 -as értékét kapja! Noha csak 14 cella található az Unióban (minden tartományban 8, közülük kettő gyakori), ha a kiválasztást nézzük, az Union valójában 16 cellát ad vissza, így az eredmény 160.

Metszés

Az Intersect metódus csak a közös cellákat adja vissza két vagy több tartományban, mint argumentum.

A következő parancs kiválasztja az alábbi képen látható tartományt (szürke terület):

1 Metszés (Tartomány ("A1: B4"), Tartomány ("B3: C6")). Válassza ki

Az Intersect használata

Az Intersect leggyakoribb használata egy munkalaphoz vagy munkafüzethez kapcsolódó eseményekben. Arra használják, hogy megvizsgálják, hogy a megváltozott cella (k) tartoznak -e egy érdeklődési körhöz. A következő példával ellenőrizze, hogy a cella (k) megváltoztak -e (a Target azonosította) és az A1: A10 tartomány gyakori, és tegye meg a megfelelő lépéseket, ha igen.

Az Intersect objektum semmit nem ad vissza, ha nincsenek közös cellák, így az Intersect (Cél, Tartomány („A1: A10”)) Is Nothing igaz lesz, ha nincsenek közös cellák. Ha a feltételt nem adja hozzá a feltételhez, az csak akkor lesz igaz, ha az Intersect (Cél, Tartomány („A1: A10”)) „Is Nothing” teszt eredménye hamis, más szóval a Cél és az A1: A10 tartomány néhány közös cellával rendelkezik.

12345 Privát almunkalap_csere (ByVal -cél tartományként)Ha nem metszi (cél, tartomány ("A1: A10")) akkor semmi'Tegye meg a kívánt intézkedéstVége HaEnd Sub

Írta: Vinamra Chandra

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave