Excel VBA - Uniune și intersecție

Excel VBA are două metode, aparținând obiectului Application, pentru a manipula două sau mai multe intervale: Union și Intersect.

Uniune

Metoda Uniunii returnează toate celulele din două sau mai multe intervale trecute ca argument.

Următoarea comandă va selecta intervalul afișat în imaginea de mai jos:

1 Uniune (Range ("A1: B4"), Range ("B3: C6")). Selectați

Puteți atribui orice valoare sau formulă intervalului returnat de metoda Uniunii:

1 Uniune (Interval ("A1: B4"), Interval ("B3: C6")) = 10

Aceasta va introduce valoarea 10 în fiecare celulă din Uniune.

Puteți înfășura orice funcție care rezumă o gamă în jurul unei metode Union. Următorul exemplu va returna suma valorilor din gamele A1: B4 și B3: C6:

1 Rezultat = Application.WorksheetFunction.Sum (union (Range ("A1: B4"), Range ("B3: C6")))

S-ar putea să fiți surprinși să obțineți valoarea din Rezultat ca 160! Deși există doar 14 celule în Uniune (8 în fiecare interval, 2 fiind comune) atunci când te uiți la Selecție, Uniunea returnează de fapt 16 celule, deci rezultatul este 160.

Intersectează

Metoda Intersect returnează numai celulele comune din două sau mai multe intervale trecute ca argument.

Următoarea comandă va selecta intervalul afișat (zona gri) în imaginea de mai jos:

1 Intersectați (Range ("A1: B4"), Range ("B3: C6")). Selectați

Utilizarea Intersect

Cea mai obișnuită utilizare a Intersectului este în evenimentele asociate cu o foaie de lucru sau un registru de lucru. Se folosește pentru a testa dacă celula (celulele) modificată (e) aparțin unui domeniu de interes. Următorul exemplu cu verificați dacă celula (celulele) s-au schimbat (identificate prin țintă) și gama A1: A10 sunt comune și luați măsurile adecvate dacă sunt.

Obiectul Intersect nu returnează nimic dacă nu există celule comune, astfel încât Intersect (Target, Range („A1: A10”)) Is Nothing va fi adevărat dacă nu există celule comune. Adăugarea Nu la condiție o face adevărată numai dacă rezultatul testului se intersectează (țintă, interval („A1: A10”)) este nimic nu este fals, cu alte cuvinte țintă și interval A1: A10 au unele celule în comun.

12345 Foaie de lucru sub privat_Change (țintă ByVal ca interval)Dacă nu se intersectează (țintă, interval ("A1: A10")) nu este nimic atunci- Faceți acțiunea dorităEnd IfSfârșitul Sub

Scris de: Vinamra Chandra

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave