Excel VBA Intersect

VBA-Schnittmenge in Mathematik oder in Geometrie bedeutet, dass sich zwei oder mehr Linien oder Flächen kreuzen. Der danach erstellte gemeinsame Punkt oder Bereich wird als Schnittpunkt oder Bereich bezeichnet. In Excel können wir auch den Schnittbereich markieren und messen.

Syntax der Intersect-Funktion in Excel VBA

Die Intersect-Funktion hat in Excel VBA die folgende Syntax:

Wie wir sehen können, werden Arg1 und Arg2 als Range bezeichnet. Die restlichen Argumente stehen in Klammern. Das bedeutet, dass die ersten beiden Argumente als Bereich ausgewählt werden müssen. Mit anderen Worten, es müssen mindestens 2 Bereiche angegeben werden, um Intersect zu finden. Die restlichen Argumente können als Bereich ausgewählt werden oder können je nach Bedarf einige andere Dinge oder Parameter enthalten. Diese Syntax kann maximal 30 Argumente aufnehmen.

Wie verwende ich die Excel VBA Intersect-Funktion?

Wir werden anhand einiger Beispiele in Excel lernen, wie man eine VBA Intersect-Funktion verwendet.

Sie können diese VBA Intersect Excel-Vorlage hier herunterladen - VBA Intersect Excel-Vorlage

VBA Intersect - Beispiel # 1

Im ersten Beispiel werden wir den Schnittbereich markieren und erstellen, wenn wir einen Datensatz haben. Hierfür haben wir Beispieldaten mit 3 Spalten, die wie unten gezeigt mit Zahlen gefüllt sind.

Nun müssen wir den Schnittbereich einer obigen Datentabelle mit VBA Intersect ermitteln. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Gehen Sie zum VBA-Fenster und öffnen Sie ein Modul über die Menüoption Einfügen (siehe unten).

Wir erhalten ein leeres Fenster des Moduls.

Schritt 2: Schreiben Sie nun eine Unterkategorie von VBA Intersect oder einen anderen Namen nach Ihrer Wahl.

Code:

 Sub VBAIntersect1 () End Sub 

Schritt 3: Fügen Sie nun direkt den Befehl Intersect ein, wie unten gezeigt.

Code:

 Sub VBAIntersect1 () Intersect (End Sub 

Wie wir bereits die detaillierte Syntax von Intersect erklärt haben, werden wir einen Schnittbereich hinzufügen. Wir können N Bereiche auswählen, aber es sollten mindestens zwei Bereiche vorhanden sein.

Betrachten wir nachfolgend einen Schnittbereich, in dem der erste Bereich von A1 bis B8, der zweite Bereich von B3 bis C12 und der dritte Bereich von A7 bis C10 reicht. Wir können eine beliebige Kombination von Schnittmustern betrachten und auswählen.

Nun wollen wir sehen, an welchen Punkten sich diese Bereiche treffen und kreuzen. Der gemeinsame Bereich, der durch alle oben genannten Bereiche erstellt wird, ist unser Schnittbereich.

Schritt 4: Wählen Sie nun im VBA-Modul von Intersect den ersten Bereichsbereich aus, wie unten gezeigt.

Code:

 Sub VBAIntersect1 () Intersect (Bereich ("A1: B8") End Sub 

Wir haben den ersten Bereich hinzugefügt, aber unsere Syntax ist immer noch unvollständig.

Schritt 5: Fügen Sie nun den Rest von zwei Bereichen, die wir oben beschrieben haben, durch Kommas getrennt ein.

Code:

 Sub VBAIntersect1 () Intersect (Bereich ("A1: B8"), Bereich ("B3: C12"), Bereich ("A7: C10")) End Sub 

Schritt 6: Geben Sie nun die Bedingung als "Wahr" an.

Code:

 Sub VBAIntersect1 () Intersect (Bereich ("A1: B8"), Bereich ("B3: C12"), Bereich ("A7: C10")) = True End Sub 

Dies vervollständigt unseren Code.

Schritt 7: Kompilieren Sie nun den Code und führen Sie ihn aus, indem Sie auf die Wiedergabetaste unter der Menüleiste klicken (siehe Abbildung unten).

Wir erhalten den gemeinsamen Bereich oder den Schnittbereich mit dem Wert TRUE, wie oben gezeigt. Obwohl wir den Schnittbereich haben, hat dieser TRUE die Daten ersetzt, die sich im Schnittbereich befanden.

Schritt 8: Damit dies nicht verloren geht, können Sie den Hintergrund der Farbe, also der allgemeinen Zellen, in eine beliebige Farbe Ihrer Wahl ändern. Verwenden Sie dazu nach der Syntax von Intersect die Innenfunktion zusammen mit der unten gezeigten Farbe.

Code:

 Sub VBAIntersect1 () Intersect (Bereich ("A1: B8"), Bereich ("B3: C12"), Bereich ("A7: C10"). Interior.Color = End Sub 

Schritt 9: Jetzt können wir in VBA nicht den Namen der Farbe verwenden, die wir direkt verwenden möchten. Dazu müssen wir " vb " hinzufügen, mit dem die in VBA verfügbaren Farben aktiviert werden. Verwenden Sie es jetzt und fügen Sie einen beliebigen Namen der Farbe Ihrer Wahl hinzu. Wir wählen hier Grün, wie unten gezeigt.

Code:

 Sub VBAIntersect1 () Intersect (Bereich ("A1: B8"), Bereich ("B3: C12"), Bereich ("A7: C10"). Interior.Color = vbGreen End Sub 

Schritt 10: Jetzt kompilieren Sie den geschriebenen Code noch einmal auf einmal, da der Code ziemlich klein ist, und führen Sie ihn aus.

Wir werden sehen, dass die Farbe des durchschnittenen Bereichs in Grün und gemeinsamer Bereich geändert wird, was durch die Schnittmenge der drei verschiedenen Bereiche in B7 bis B8 entsteht.

VBA Intersect - Beispiel # 2

Es gibt eine andere, aber eine ganz andere Möglichkeit, VBA Intersect zu verwenden. Dieses Mal verwenden wir intersect in einem bestimmten Arbeitsblatt. In Sheet2 haben wir einen Bereich von B4 bis E8 markiert, wie unten gezeigt.

Befolgen Sie die folgenden Schritte:

Schritt 1: Wechseln Sie in VBA zu Sheet2 der aktuellen Arbeitsmappe (siehe unten).

Schritt 2: Wählen Sie nun das Arbeitsblatt aus dieser ersten Dropdown-Option aus. Dadurch kann der Code nur in diesem aktuellen Blatt verwendet werden.

Schritt 3: Wählen Sie im zweiten Dropdown-Menü die Option Ändern, wie unten gezeigt. Hiermit werden die im ausgewählten Bereich vorgenommenen Änderungen als Ziel festgelegt.

Schritt 4: Wir werden unseren Code nur in der ersten Unterkategorie schreiben.

Code:

 Private Sub Worksheet_Change (ByVal Target As Range) End Sub 

Schritt 5: Wir werden die If-Else-Schleife verwenden, um eine Bedingung für die Schnittfunktion zu bilden.

Code:

 Private Sub Worksheet_Change (ByVal-Ziel als Bereich) If End If End Sub 

Schritt 6: Wählen Sie zuerst den Zielbereich von B4 bis E8 wie unten gezeigt. Dies wird hauptsächlich den Schnittpunkt des in B4 bis E8 abgedeckten Gebiets betreffen.

Code:

 Private Sub Worksheet_Change (ByVal-Ziel als Bereich) If Intersect (Ziel, Bereich ("B4: E8")) End If End Sub 

Schritt 7: Wenn sich im Zielbereich nichts befindet, müssen wir eine Anweisung schreiben, die den Code weiterleitet.

Code:

 Private Sub Worksheet_Change (ByVal-Ziel als Bereich) Wenn sich überschneidet (Ziel, Bereich ("B4: E8")), endet nichts, wenn End Sub 

Schritt 8: Wenn sich das Ziel tatsächlich außerhalb der Reichweite befindet, können Sie ein Meldungsfeld mit einer Warnmeldung wie unten gezeigt verwenden.

Code:

 Private Sub Worksheet_Change (ByVal Target as Range) Wenn Intersect (Target, Range ("B4: E8")) nichts ist, dann MsgBox "Out of Range" End If End Sub 

Schritt 9: Und in der Else-Anweisung, in der etwas in der Box steht, sollten wir eine sofortige Nachricht erhalten, wenn der geschriebene Inhalt in der Box ist, wie unten gezeigt.

Code:

 Private Sub Worksheet_Change (ByVal Target as Range) Wenn Intersect (Target, Range ("B4: E8")) nichts ist, dann MsgBox "Out of Range", sonst MsgBox "Within Range" End If End Sub 

Schritt 10: Kompilieren Sie nun jeden Schritt des geschriebenen Codes und schließen Sie das Arbeitsblatt von VBA. Da wir den für das Blatt spezifischen Code geschrieben haben, funktioniert er auch in diesem.

Schritt 11: Schreiben Sie nun etwas in die Box.

Wie wir sehen können, haben wir in Zelle C5 innerhalb des Kästchens 2 geschrieben und die Meldung „ Within Range “ erhalten.

Schritt 12: Wieder etwas aus dem Kasten heraus schreiben. Wir haben 1 in Zelle B10 geschrieben und die Meldung "Außer Reichweite" wie unten gezeigt erhalten.

Dies ist eine weitere Möglichkeit, Intersect in Excel VBA zu verwenden.

Vorteile von Excel VBA Intersect

  • Es ist sehr einfach, zumindest den Bereich hervorzuheben, der sich durch den Prozess von Beispiel 1 schneidet.
  • Dies ist sehr nützlich, wenn wir diese Art von Daten filtern oder bearbeiten müssen, die Schnittpunkte aus einem anderen Bereich haben, z. B. Daten, Eigentümer usw.

Dinge, an die man sich erinnern sollte

  • Denken Sie daran, die Datei im Excel-Format "Makro aktivieren" zu speichern, damit der Code bei jeder Verwendung funktioniert.
  • Wenn Sie anstelle des in Beispiel 2 gezeigten Moduls Code in Sheet schreiben, gilt der Code nur für dieses Sheet. Dieser Code funktioniert auf keinem anderen Blatt.
  • Die Verwendung des in Beispiel 2 gezeigten Zielbereichs ist nützlich, um den zu treffenden Bereich anzugeben.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA Intersect. Hier diskutieren wir die Verwendung von Excel VBA Intersect Function zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Beispiele für VBA-Schleifen
  2. Excel COLUMN to Number
  3. VBA-Do-Until-Schleife
  4. Erstellen Sie ein Budget in Excel

Kategorie: