Excel VBA - Union ja Intersect

Excel VBA: ssa on kaksi tapaa, jotka kuuluvat sovellusobjektiin kahden tai useamman alueen manipuloimiseksi: Union ja Intersect.

liitto

Union -menetelmä palauttaa kaikki solut kahdella tai useammalla sen argumenttina.

Seuraava komento valitsee alla olevassa kuvassa näkyvän alueen:

1 Union (Alue ("A1: B4"), Alue ("B3: C6")). Valitse

Voit määrittää minkä tahansa arvon tai kaavan unionimenetelmän palauttamalle alueelle:

1 Unioni (alue ("A1: B4"), alue ("B3: C6")) = 10

Tämä antaa arvon 10 kussakin unionin solussa.

Voit kääriä minkä tahansa funktion, joka tiivistää alueen unionin menetelmän ympärille. Seuraava esimerkki palauttaa alueiden A1: B4 ja B3: C6 arvojen summan:

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

Saatat yllättyä saadessasi arvon tulokseksi 160! Vaikka unionissa on vain 14 solua (8 kullakin alueella, joista 2 on yleistä), kun tarkastelet valintaa, Union todella palauttaa 16 solua, joten tulos on 160.

Leikkaa

Leikkausmenetelmä palauttaa vain tavalliset solut kahdella tai useammalla alueella, joka on annettu sen argumenttina.

Seuraava komento valitsee alla olevassa kuvassa näkyvän alueen (harmaa alue):

1 Leikkaa (Alue ("A1: B4"), Alue ("B3: C6")). Valitse

Risteyksen käyttö

Yleisin Intersect -käyttö on tapahtumiin, jotka liittyvät laskentataulukkoon tai työkirjaan. Sitä käytetään testaamaan, kuuluuko muutettu solu (t) kiinnostavaan alueeseen. Seuraavan esimerkin avulla voit tarkistaa, ovatko solut muuttuneet (tunnistettu Kohteella) ja alue A1: A10 ovat yleisiä, ja ryhdy tarvittaviin toimiin, jos ovat.

Leikkausobjekti ei palauta mitään, jos yhteisiä soluja ei ole, joten Leikkaa (Kohde, Alue (”A1: A10”)) Is Nothing ei ole totta, jos yhteisiä soluja ei ole. Lisäämällä ehtoon ei tee siitä totta vain, jos testin Intersect (kohde, alue (“A1: A10”)) Is Nothing tulos on epätosi, toisin sanoen kohde ja alue A1: A10 sisältävät joitakin yhteisiä soluja.

12345 Yksityinen alityöarkin_muutos (ByVal -kohde alueena)Jos ei leikkaa (kohde, alue ("A1: A10")) ei ole mitään sitten'Toimi halutulla tavallaLoppu JosEnd Sub

Käsikirjoitus: Vinamra Chandra

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave