Excel VBA - Vereinigung und Schnitt

Excel VBA verfügt über zwei Methoden, die zum Application-Objekt gehören, um zwei oder mehr Bereiche zu bearbeiten: Union und Intersect.

Union

Die Union-Methode gibt alle Zellen in zwei oder mehr Bereichen zurück, die als Argument übergeben wurden.

Der folgende Befehl wählt den in der Abbildung unten gezeigten Bereich aus:

1 Union(Bereich("A1:B4"),Bereich("B3:C6")).Auswählen

Sie können dem von der Union-Methode zurückgegebenen Bereich einen beliebigen Wert oder jede Formel zuweisen:

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

Dadurch wird der Wert 10 in jede Zelle der Union eingetragen.

Sie können jede Funktion umschließen, die einen Bereich um eine Union-Methode herum zusammenfasst. Das folgende Beispiel gibt die Summe der Werte in den Bereichen A1:B4 und B3:C6 zurück:

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

Sie werden überrascht sein, dass der Wert in Result 160 beträgt! Obwohl es in der Union nur 14 Zellen gibt (8 in jedem Bereich, wobei 2 gemeinsam sind), gibt Union bei der Auswahl tatsächlich 16 Zellen zurück, daher das Ergebnis als 160.

Schneiden

Die Intersect-Methode gibt nur die gemeinsamen Zellen in zwei oder mehr Bereichen zurück, die als Argument übergeben wurden.

Der folgende Befehl wählt den im Bild unten angezeigten Bereich (grauer Bereich) aus:

1 Schnitt(Bereich("A1:B4"),Bereich("B3:C6")).Auswählen

Verwendung von Intersect

Die häufigste Verwendung von Intersect findet sich in Ereignissen, die einem Arbeitsblatt oder einer Arbeitsmappe zugeordnet sind. Es wird verwendet, um zu testen, ob die geänderte(n) Zelle(n) zu einem interessierenden Bereich gehören. Folgendes Beispiel mit Prüfung, ob die geänderte(n) Zelle(n) (identifiziert durch Ziel) und Bereich A1:A10 üblich sind und entsprechende Maßnahmen ergreifen, wenn dies der Fall ist.

Das Intersect-Objekt gibt nichts zurück, wenn keine gemeinsamen Zellen vorhanden sind, so dass Intersect(Target, Range("A1:A10")) Is Nothing True ist, wenn keine gemeinsamen Zellen vorhanden sind. Das Hinzufügen von Nicht zur Bedingung macht sie nur wahr, wenn das Ergebnis des Tests Intersect(Target, Range(“A1:A10”)) Is Nothing False ist, mit anderen Worten, Target und Range A1:A10 haben einige Zellen gemeinsam.

12345 Private Sub Worksheet_Change (ByVal Target As Range)Wenn kein Schnitt (Ziel, Bereich("A1:A10")) ist, dann ist nichts' Gewünschte Aktion ausführenEnde WennEnd Sub

Geschrieben von: Vinamra Chandra

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave