Einführung in Excel VBA Call Sub

In VBA haben wir eine Funktion wie CALL, die zum Aufrufen der in einer anderen Unterkategorie oder Subprozedur gespeicherten Werte verwendet wird. Angenommen, wir haben irgendwo in einer Arbeitsmappe einen Code geschrieben. Während wir nun einen anderen Code schreiben, benötigen wir denselben Code, der zuvor geschrieben wurde. Anstatt denselben Code erneut zu schreiben, können wir diesen vollständigen Code oder diese Subprozedur in die aktuelle Subkategorie oder Subprozedur aufnehmen. Auf diese Weise können Sie vermeiden, die gleiche Aktivität der Arbeitsmappe immer wieder auszuführen.

Wie Sub in Excel VBA aufrufen?

Im Folgenden sind die verschiedenen Beispiele zum Aufrufen von Sub in Excel VBA aufgeführt:

Sie können diese VBA-Call-Sub-Excel-Vorlage hier herunterladen - VBA-Call-Sub-Excel-Vorlage

Excel VBA Call Sub - Beispiel # 1

Zunächst sehen wir uns ein einzelnes Beispiel an, in dem wir eine bereits geschriebene Code-Unterkategorie oder -Prozedur aufrufen. Dafür brauchen wir ein Modul.

Gehen Sie zum VBA-Fenster und klicken Sie unter Einfügen auf Modul (siehe unten).

Danach erhalten wir eine leere Seite oder ein Fenster mit Modulen. Schreiben Sie nun eine Unterkategorie des Codes, den wir ausführen, oder einen anderen Namen, wie unten gezeigt.

Code:

 Sub Calling () End Sub 

Verwenden Sie nun einen Befehl im Meldungsfeld und geben Sie einen beliebigen Text oder ein beliebiges Wort ein, das im Meldungsfeld angezeigt werden soll. Hier verwenden wir " First " wie unten gezeigt.

Code:

 Sub Calling () MsgBox ("First") End Sub 

Kompilieren Sie nun den Code und führen Sie ihn aus, indem Sie auf die Schaltfläche Abspielen unterhalb der Menüleiste klicken. Es wird ein Meldungsfeld mit der Meldung " First " angezeigt (siehe unten).

Schreiben Sie nun nach dem Ende im selben Modul eine andere Unterkategorie oder Prozedur in einem beliebigen Namen, wie unten gezeigt.

Code:

 Sub Arriving () End Sub 

Verwenden Sie in diesem Fall erneut den Befehl MsgBox und geben Sie eine Nachricht oder einen Text nach Ihrer Wahl ein. Hier haben wir es " Second " gegeben, wie unten gezeigt.

Code:

 Sub Arriving () MsgBox ("Second") End Sub 

Wenn wir nun den vollständigen Code ausführen, erhalten wir nur die Ausgabe der letzten Unterkategorie, bei der es sich um ein Meldungsfeld handelt, das die Meldung " Second " enthält (siehe unten).

Hier kommt die Funktion CALL, mit der wir beide Nachrichten nacheinander aufrufen. Dies wird in der ersten Unterkategorie verwendet.

Geben Sie für diesen Typ Call in der ersten Unterkategorie vor End ein, gefolgt vom Namen der Unterkategorie, deren Code wir aufrufen möchten. In der folgenden MsgBox wird Call gefolgt von Arriving verwendet. Dies ist der Unterkategoriename des unten angegebenen Codes.

Code:

 Sub Calling () MsgBox ("First") Anruf ankommen End Sub Sub Arriving () MsgBox ("Second") End Sub 

Kompilieren Sie nun den vollständigen Code von Anfang bis Ende und führen Sie ihn aus. Wir werden das Meldungsfeld mit der Meldung "First" sehen. Klicken Sie nun auf OK, um fortzufahren. Sobald wir das getan haben, erhalten wir das zweite Meldungsfeld mit der Meldung " Second ", wie unten gezeigt. Wenn Sie erneut auf OK klicken, wird der Vorgang beendet.

Was ist, wenn wir die Position der Anruffunktion von vor Ende auf nach der ersten Unterkategorie ändern, wie unten gezeigt? Führen Sie nun den vollständigen Code erneut aus.

Code:

 Sub Calling () Call Arriving MsgBox ("Erste") End Sub Sub Arriving () MsgBox ("Zweite") End 

Es wird zuerst die Nachricht angezeigt, die in der zweiten Unterprozedur gespeichert ist. Dies ist " Second ", gefolgt von der Nachricht " First ", wenn wir auf "Ok" klicken, wie unten gezeigt.

Es liegt also ganz bei uns, welche Unterprozedur oder Kategorie wir zuerst aufrufen möchten.

Excel VBA Call Sub - Beispiel # 2

Schauen wir uns ein weiteres Beispiel an, in dem wir eine Call-Funktion verwenden, um verschiedene Unterkategorien aufzurufen. Dafür brauchen wir ein neues Modul. Öffnen Sie ein Modul aus dem Menü Einfügen. Und es gibt eine Unterkategorie in einem beliebigen Namen, wie unten gezeigt.

Code:

 Sub VBACall () End Sub 

Definieren Sie 3 Variablen Num1, Num2 und Ans1 in DIM und weisen Sie diese dann mit Long zu . Wir können je nach Verwendung auch Integer oder Double verwenden. Mit Long können wir eine beliebige Länge der Zahl berücksichtigen.

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long End Sub 

Geben Sie nun Num1 und Num2 eine beliebige Anzahl Ihrer Wahl. Wir haben ihnen 100 bzw. 50 gegeben . Die Betrachtung von 100 und 50 hilft uns, die Ausgabe schnell zu identifizieren.

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 End Sub 

Verwenden Sie nun die Multiplikationsformel, um die in Num1 und Num2 gespeicherten Zahlen zu multiplizieren und ihre Antwort in der Ans1- Variablen zu speichern, wie unten gezeigt.

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub 

In der nächsten Codezeile verwenden wir das VBA-Objekt. Wählen Sie dazu das Blatt mit dem Befehl Arbeitsblatt aus und geben Sie ihm einen Bereich einer beliebigen Zelle. Wir haben die Bereichszelle als B1 ausgewählt. Und drucken Sie zuletzt das Ergebnis mit einem beliebigen Namen wie Ergebnis oder Antwort, wie unten gezeigt.

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arbeitsblätter (1) .Range ("B1"). Value = "Answer" End Sub 

Geben Sie nun den Ort an, an dem die Antwort angezeigt werden soll, wie oben gezeigt. Hier wählen wir Zelle C1 als Ausgabezelle und setzen hier die letzte Variable Ans1 .

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arbeitsblätter (1) .Bereich ("B1") .Wert = "Antwort" Arbeitsblätter (1) .Bereich ("C1") Wert = Ans1 End Sub 

Führen Sie nun den Code aus. Wir werden ein Multiplikationsergebnis in Zelle C1 sehen.

Schreiben Sie nach End eine weitere Unterkategorie unter demselben Code.

Code:

 Sub VBACall2 () End Sub 

Definieren Sie erneut 3 Variablen Num3, Num4 und Ans2 in DIM und weisen Sie diese dann mit Long zu.

Code:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub 

Geben Sie Num3 und Num4 die gleichen Werte wie 100 und 50 und addieren Sie beide Zahlen.

Code:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub 

Verwenden Sie nun VBA Object auf ähnliche Weise wie oben und geben Sie dann range cell als B2 für Answer und C2 für die Ausgabe von Ans2 an .

Code:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arbeitsblätter (1) .Bereich ("B2") .Wert = "Antwort" Arbeitsblätter (1) .Bereich ("C2") Wert = Ans2 End Sub 

Um beide Ergebnisse einzeln aufzurufen, verwenden Sie die Anruffunktion und geben Sie ihr den Namen der 2. Unterkategorie (siehe unten).

Code:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arbeitsblätter (1) .Bereich ("B1") .Wert = "Antwort" Arbeitsblätter (1) .Bereich ("C1"). Value = Ans1 Call VBACall2 End Sub Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Worksheets (1) .Range ("B2" ) .Value = "Answer" Arbeitsblätter (1) .Range ("C2"). Value = Ans2 End Sub 

Kompilieren Sie nun den gesamten Code und führen Sie ihn aus. Wir werden die erste in Zelle C2, wir haben das Ergebnis der Multiplikation und in Zelle C3, ein Ergebnis der Addition.

Um die richtige Reihenfolge zu ermitteln, können Sie den Befehl MsgBox wie in Beispiel 1 verwenden und sehen, welche Werte in welcher Reihenfolge aufgerufen wurden.

Vorteile von Excel VBA Call Sub

  • VBA Call Sub spart Zeit, wenn Sie immer wieder denselben Code schreiben.
  • Durch Aufrufen des VBA-Subprozedurspeichers in demselben Excel wird auch die Größe der Excel-Datei verringert.

Dinge, an die man sich erinnern sollte

  • Verwenden Sie das Meldungsfeld zu Testzwecken, um die sequentielle Ausführung mehrerer Codes anzuzeigen.
  • Kompilieren Sie die größeren Codezeilen, indem Sie die Taste F8 drücken, damit der Fehlerteil identifiziert werden kann.
  • Speichern Sie die Datei im Excel-Format "Makro aktivieren", um den geschriebenen Code beizubehalten.
  • Wenn Sie CALL before End verwenden, wird zuerst der erste Code ausgeführt, und nach der ersten Unterprozedur wird zuerst der zweite Code ausgeführt.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA Call Sub. Hier besprechen wir, wie man Sub in Excel VBA aufruft, zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA-Do-Until-Schleife
  2. Zwischensumme Formel in Excel
  3. VBA While-Schleife
  4. Teilzeichenfolge-Excel-Funktion

Kategorie: