In allen Programmiersprachen haben wir Variablenzugriffsspezifizierer, die definieren, von wo aus auf eine definierte Variable zugegriffen werden kann. Excel VBA ist keine Ausnahme. Auch VBA hat Bereichsspezifizierer. Diese Bereichsbezeichner können verwendet werden, um die Sichtbarkeit/den Bereich einer Variablen in Excel VBA festzulegen.
In Excel VBA gibt es drei Arten von Bereichsspezifizierern:
- Verfahrensebene
- Privat - Modulebene
- Öffentlich - Projektebene
Gültigkeitsbereich der Variablen auf VBA-Verfahrensebene
Auf die Variablen, die innerhalb einer Subroutine deklariert werden, kann nur in dieser Prozedur/Funktion zugegriffen werden. Sie haben einen Geltungsbereich auf Verfahrensebene. Sie werden normalerweise mit dem Schlüsselwort Dim deklariert. Wenn das Modul optional implizit ist, wurde die Variable möglicherweise nicht deklariert, sondern nur direkt verwendet.
Im folgenden Beispiel haben wir einen Subroutinen-Scope-Test mit den Variablen x und y. Wenn wir das erste Unterprogramm ausführen, läuft es perfekt und druckt die Summe von X und Y
Option Expliziter UnterbereichTest() Dim x, y As Integer ' Variable auf Prozedurebene in VBA x = 2 y = 3 Debug.Print x + y End Sub Sub sum() x = 5 y = 7 Debug.Print x + y End Sub
Wenn Sie jedoch die Subroutine sum ausführen, wird eine Fehlermeldung ausgegeben, dass die Variable nicht deklariert ist. Wieso den? Da X und Y für die Prozedur scopeTest privat sind und die Subroutine Summe keinen Zugriff darauf hat. Daher läuft das Sub in einen Fehler.
VBA Private Variable – Geltungsbereich auf Modulebene
Wenn Sie eine Variable deklarieren möchten, auf die im gesamten Modul zugegriffen werden muss, deklarieren Sie diese Variable oben im Modul als privat, vor jeder Unterroutine oder Funktion.
Die Variablen, die im Modul vor einer Subroutine deklariert werden, sind standardmäßig Private. Auch wenn Sie sie mit dem Schlüsselwort Dim deklarieren. Um genau zu sein, ist es jedoch ratsam, das Schlüsselwort Private zu verwenden.
Die beiden folgenden Verfahren befinden sich im selben Modul, Modul 1.
Option Explizit 'Modulebene Variable in VBA. Beide Variablen x und y sind für dieses Modul privat. und 'kann von jedem Unterelement oder jeder Funktion innerhalb dieses Moduls aufgerufen werden. Dim x As Integer Private y As Integer Sub scopeTest() 'Zugriff von jedem Modul im Projekt x = 2 y = 3 Debug.Print x + y End Sub Private Abo-Summe() ' Von anderen Modulen kann nicht darauf zugegriffen werden x = 5 y = 7 Debug.Print x + y End Sub
Die beiden oben genannten Funktionen werden einwandfrei ausgeführt, da die Variablen x und y die privaten Variablen dieses Moduls sind.
Wichtig: Die letzten in x und y gespeicherten Werte bleiben bis zum ganzen Modul erhalten. Wenn wir zuerst den subscopeTest ausführen und die Werte von x und y in subsum nicht initialisieren und ausführen, bleiben die Anfangswerte von x und y unverändert.
Die folgende Unterroutine ist in einem separaten Modul, Modul 2, definiert. Wenn ich versuche, von einem anderen Modul auf die Variable zuzugreifen, tritt in der VBA-Prozedur (oder Funktion) ein Fehler auf.
Aber wenn ich versuche, das Unterprogramm aufzurufen Summe von Modul 1 in Modul 2 funktioniert das einwandfrei. Um Ihre Funktion und Subroutinen für das Modul privat zu machen, verwenden Sie das Schlüsselwort Private vor dem Sub und der Funktion.
Notiz:- Die Variablen, die in einem Modul vor jeder Unterroutine oder Funktion deklariert werden, sind standardmäßig für das Modul privat. Sie können die PrivatgeländeStichwort. Die Funktionen und Unterprogramme sind jedoch standardmäßig öffentlich und können von jedem Modul in einem Projekt aufgerufen werden. Um Funktionen und Subroutinen für das Modul privat zu machen, müssen Sie das Schlüsselwort Private verwenden.
Öffentliche Variablen – Geltungsbereich auf Projektebene
Wie wir in den obigen Beispielen erfahren haben, sind die Funktion und Unterroutinen standardmäßig öffentlich und können von jedem Modul aus aufgerufen werden, Variablen jedoch nicht. Um eine Variable von jedem Modul in Excel VBA aus zugänglich zu machen,Wir verwenden das Schlüsselwort Public.
Um eine öffentliche Variable in einem Projekt zu deklarieren, haben Sie sie oben im Modul vor jeder Funktion oder Unterroutine mit dem Schlüsselwort public deklariert. Der folgende Code ist in Modul 1 geschrieben.
Option Explizit 'Variable auf Projektebene in VBA. Öffentlich x als ganze Zahl Öffentlich y als ganze Zahl Public Sub scopeTest() 'Auf diesen kann von jedem Modul im Projekt zugegriffen werden x = 2 y = 3 End Sub Private Sub sum() ' Auf diesen kann nicht von anderen Modulen zugegriffen werden x = 5 y = 7 Debug.Print x + y Ende Sub
Und dieses Unterprogramm befindet sich in einem anderen Modul, Modul 2.
Option Explicit Sub mul() Rufen Sie scopeTest 'Call sum ' auf, es funktioniert nicht, da es privat für das Modul ist 1 Debug.Print x * y End Sub
Diesmal läuft es perfekt.
Zuerst habe ich das Unterprogramm scopeTest aufgerufen. Da der scopeTest öffentlich ist, wird er aufgerufen. Es initialisiert die Werte von x und y. Als nächstes multiplizieren wir x und y. Da die scopeTest-Unterroutine sie mit den Werten 2 und 3 initialisiert hat, erhalten wir als Ergebnis 6.
Also ja, Leute, so können Sie die Variablenbereichsbezeichner in Excel verwenden, um die Sichtbarkeit von Variablen, Funktionen und Unterroutinen in Excel-VBA-Projekten zu steuern.
Ich habe versucht, die Access Specifiers von VBA so einfach wie möglich zu erklären. Ich hoffe es war erklärend. Wenn Sie Zweifel an diesem Artikel oder anderen VBA-bezogenen Zweifeln haben, fragen Sie mich im Kommentarbereich unten. Ich werde gerne hier von Ihnen.
ByRef- und ByVal-Argumente |Wenn ein Argument als ByRef-Argument an eine andere Unterfunktion oder Funktion übergeben wird, wird die Referenz der tatsächlichen Variablen gesendet. Alle Änderungen, die an der Kopie der Variablen vorgenommen werden, werden im ursprünglichen Argument widergespiegelt.
Löschen Sie Blätter ohne Bestätigungsaufforderung mit VBA in Microsoft Excel|Da Sie Blätter mit VBA löschen, wissen Sie, was Sie tun. Sie möchten Excel anweisen, diese Warnung nicht anzuzeigen und das verdammte Blatt zu löschen.
Hinzufügen und Speichern einer neuen Arbeitsmappe mit VBA In Microsoft Excel 2016|In diesem Code haben wir zuerst einen Verweis auf ein Arbeitsmappenobjekt erstellt. Und dann haben wir es mit einem neuen Arbeitsmappenobjekt initialisiert. Der Vorteil dieses Ansatzes besteht darin, dass Sie Vorgänge in dieser neuen Arbeitsmappe problemlos ausführen können. Wie Speichern, Schließen, Löschen usw.
Anzeigen einer Meldung in der Excel VBA-Statusleiste Die Statusleiste in Excel kann als Codemonitor verwendet werden. Wenn Ihr VBA-Code lang ist und Sie mehrere Aufgaben mit VBA ausführen, deaktivieren Sie häufig die Bildschirmaktualisierung, damit dieser Bildschirm nicht flackert
Warnmeldungen mit VBA in Microsoft Excel 2016 deaktivieren|Dieser Code deaktiviert nicht nur VBA-Warnungen, sondern erhöht auch die Zeiteffizienz des Codes. Mal sehen wie.
Populäre Artikel:
50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Tastenkombinationen arbeiten Sie noch schneller mit Excel.
Die SVERWEIS-Funktion in Excel | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, die verwendet wird, um Werte aus verschiedenen Bereichen und Blättern zu suchen.
ZÄHLENWENN in Excel 2016 | Zählen Sie Werte mit Bedingungen mit dieser erstaunlichen Funktion. Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen. Die Countif-Funktion ist unerlässlich, um Ihr Dashboard vorzubereiten.
So verwenden Sie die SUMIF-Funktion in Excel | Dies ist eine weitere wesentliche Funktion des Dashboards. Dies hilft Ihnen, Werte unter bestimmten Bedingungen zusammenzufassen.