Excel VBA - Union og kryds

Indholdsfortegnelse

Excel VBA har to metoder, der tilhører Application -objekt, til at manipulere to eller flere intervaller: Union og Intersect.

Union

Union -metode returnerer alle cellerne i to eller flere intervaller, der er bestået som argument.

Følgende kommando vælger det område, der vises på billedet herunder:

1 Union (område ("A1: B4"), område ("B3: C6")). Vælg

Du kan tildele enhver værdi eller formel til det område, der returneres ved Union -metoden:

1 Union (område ("A1: B4"), område ("B3: C6")) = 10

Dette vil indtaste værdien 10 i hver celle i Unionen.

Du kan ombryde enhver funktion, der opsummerer et område omkring en Union -metode. Følgende eksempel returnerer summen af ​​værdierne i områderne A1: B4 og B3: C6:

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

Du vil måske blive overrasket over at få værdien i Resultat som 160! Selvom der kun er 14 celler i Unionen (8 i hvert område, hvor 2 er almindelige), når du ser på Selection, returnerer Union faktisk 16 celler og dermed resultatet som 160.

Krydse

Skæringsmetode returnerer kun de almindelige celler i to eller flere områder, der er bestået som argument.

Følgende kommando vælger det viste område (gråt område) på billedet herunder:

1 Kryds (område ("A1: B4"), område ("B3: C6")). Vælg

Brug af skæringspunkt

Den mest almindelige brug af Intersect er i begivenheder, der er knyttet til et regneark eller en projektmappe. Det bruges til at teste, om de ændrede celle (r) tilhører et område af interesse. Følgende eksempel med kontrol af, om cellen (erne) er ændret (identificeret med mål) og område A1: A10 er almindelige, og foretag passende foranstaltninger, hvis de er.

Skæringsobjekt returnerer intet, hvis der ikke er fælles celler, så Kryds (mål, område ("A1: A10")) er intet vil være sandt, hvis der ikke er fælles celler. Tilføjelse Ikke til betingelsen gør det kun sandt, hvis resultatet af testen Intersect (Target, Range ("A1: A10")) Intet er falsk, med andre ord Target og Range A1: A10 har nogle celler til fælles.

12345 Private Sub Worksheet_Change (ByVal Target As Range)Hvis ikke skærer hinanden (mål, rækkevidde ("A1: A10")) er ingenting derefter'Tag den ønskede handlingAfslut HvisAfslut Sub

Skrevet af: Vinamra Chandra

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave