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