„Excel VBA“ - sąjunga ir susikirtimas

„Excel VBA“ turi du metodus, priklausančius „Application“ objektui, manipuliuoti dviem ar daugiau diapazonų: „Union“ ir „Intersect“.

Sąjunga

„Union“ metodas grąžina visas ląsteles dviem ar daugiau diapazonų, pateiktų kaip jo argumentas.

Ši komanda pasirinks žemiau esančiame paveikslėlyje parodytą diapazoną:

1 Sąjunga (diapazonas („A1: B4“), diapazonas („B3: C6“)). Pasirinkite

„Union“ metodu grąžintam diapazonui galite priskirti bet kokią vertę ar formulę:

1 Sąjunga (diapazonas („A1: B4“), diapazonas („B3: C6“)) = 10

Į kiekvieną Sąjungos langelį įvesite 10 vertę.

Bet kurią funkciją, kurioje apibendrinamas diapazonas, galite apjuosti Sąjungos metodu. Šis pavyzdys grąžins A1: B4 ir B3: C6 diapazonų verčių sumą:

1 Rezultatas = Application.WorksheetFunction.Sum (sąjunga (diapazonas („A1: B4“), diapazonas („B3: C6“)))

Galbūt nustebsite, kai rezultato vertė bus 160! Nors Sąjungoje yra tik 14 langelių (8 kiekviename diapazone, o 2 yra bendri), kai žiūrite į atranką, „Union“ iš tikrųjų grąžina 16 langelių, taigi rezultatas yra 160.

Susikerta

Intersect metodas grąžina tik įprastas ląsteles dviejuose ar daugiau diapazonų, perduotų kaip jo argumentas.

Ši komanda pasirinks žemiau esančiame paveikslėlyje rodomą diapazoną (pilka sritis):

1 Susikirtimas (diapazonas („A1: B4“), diapazonas („B3: C6“)). Pasirinkite

„Intersect“ naudojimas

Dažniausiai „Intersect“ naudojamas įvykiuose, susijusiuose su darbalapiu ar darbaknyge. Jis naudojamas patikrinti, ar pakeista ląstelė (-ės) priklauso dominančiam diapazonui. Toliau pateiktas pavyzdys ir patikrinkite, ar langelis (-ai) pasikeitė (identifikuotas pagal „Target“) ir diapazonas A1: A10 yra įprasti, ir imkitės atitinkamų veiksmų, jei taip yra.

Susikertantis objektas nieko negrąžina, jei nėra bendrų langelių, todėl susikerta (Tikslas, diapazonas („A1: A10“)) „Is Nothing“ bus tiesa, jei nėra bendrų langelių. Pridėjus prie sąlygos, ji tampa tiesa tik tuo atveju, jei testo rezultatas Sankryža (Tikslas, diapazonas („A1: A10“)) „Nieko nėra“ yra klaidingas, kitaip tariant, „Taikinys“ ir „A1“ diapazonas: „A10“ turi keletą bendrų langelių.

12345 Privatus antrinis darbalapio keitimas („ByVal Target“ kaip diapazonas)Jei nesikerta (taikinys, diapazonas („A1: A10“)), tada nieko nėra'Imkitės norimų veiksmųPabaiga JeiPabaiga Sub

Parašė: Vinamra Chandra

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave