Excel VBA - Union og kryss

Innholdsfortegnelse

Excel VBA har to metoder, som tilhører Application -objektet, for å manipulere to eller flere områder: Union og Intersect.

Union

Union -metoden returnerer alle cellene i to eller flere områder som er bestått som argument.

Følgende kommando vil velge området som vises på bildet nedenfor:

1 Union (område ("A1: B4"), område ("B3: C6")). Velg

Du kan tilordne en hvilken som helst verdi eller formel til området som returneres av Union -metoden:

1 Union (Range ("A1: B4"), Range ("B3: C6")) = 10

Dette angir verdien 10 i hver celle i Unionen.

Du kan vikle en hvilken som helst funksjon som oppsummerer et område rundt en Union -metode. Følgende eksempel vil returnere summen av verdiene i områdene A1: B4 og B3: C6:

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

Du kan bli overrasket over å få verdien i Result som 160! Selv om det bare er 14 celler i Unionen (8 i hvert område med 2 som er vanlige) når du ser på Selection, returnerer Union faktisk 16 celler og dermed resultatet som 160.

Krysse

Intersect -metode returnerer bare de vanlige cellene i to eller flere områder som er bestått som argument.

Følgende kommando vil velge området som vises (grått område) i bildet nedenfor:

1 Kryss (Område ("A1: B4"), Område ("B3: C6")). Velg

Bruk av kryss

Den vanligste bruken av Intersect er i hendelser knyttet til et regneark eller en arbeidsbok. Den brukes til å teste om cellene (e) som er endret tilhører et område av interesse. Følgende eksempel med sjekk om cellene er endret (identifisert med mål) og område A1: A10 er vanlige, og gjør nødvendige tiltak hvis de er det.

Kryssobjekt returnerer ingenting hvis det ikke er noen vanlige celler, så Kryss (mål, område ("A1: A10")) er ingenting vil være sant hvis det ikke er noen vanlige celler. Å legge til Ikke til tilstanden gjør det Sant bare hvis resultatet av testen Intersect (Target, Range ("A1: A10")) er ingenting er usant, med andre ord Target og Range A1: A10 har noen celler til felles.

12345 Private Sub Worksheet_Change (ByVal Target As Range)Hvis ikke krysser (mål, rekkevidde ("A1: A10")) er ingenting da'Ta ønsket handlingSlutt omSlutt Sub

Skrevet av: Vinamra Chandra

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave