VBA Set Statemment - Wie ordne ich Objektvariablen Werte zu?

Inhaltsverzeichnis

Excel VBA Set-Anweisung

VBA Set ist eine Anweisung, mit der ein beliebiger Wertschlüssel zugewiesen wird, der ein Objekt oder eine Referenz auf eine Variable anzeigt. Mit dieser Funktion definieren wir den Parameter für eine bestimmte Variable, z. B. wenn wir Set M = A schreiben, was jetzt M bedeutet Die Referenz hat dieselben Werte und Attribute wie A.

In VBA ist ein Objekt ein Kern des Excel, da wir ohne Objekte nichts tun können. Objekte sind Arbeitsmappe, Arbeitsblatt und Bereich. Wenn wir eine Variable deklarieren, müssen wir ihr einen Datentyp zuweisen, und wir können Objekte auch als Datentypen zuweisen. Um deklarierten Objektvariablen einen Wert zuzuweisen, müssen wir das Wort "SET" verwenden. Das Wort "Set" bezieht sich auf ein neues Objekt in VBA, z. B. auf den bestimmten Bereich des jeweiligen Arbeitsblatts.

Wie verwende ich die Excel VBA Set-Anweisung?

# 1 - Set-Anweisung mit Bereichsobjektvariablen

Angenommen, Sie möchten den Bereich A1 bis D5 häufig verwenden. Anstatt den Code jedes Mal als Bereich („A1: D5“) zu schreiben, können wir die Variable als Bereich deklarieren und die Bereichsreferenz als Bereich („A1: D5“) festlegen.

Schritt 1: Deklarieren Sie die Variable als Range-Objekt.

Code:

Sub Set_Example ()

Dim MyRange As Range

End Sub

Schritt 2: In dem Moment, in dem wir den Datentyp als Bereich zuweisen, verwenden Sie das Wort "Set".

Code:

Sub Set_Example () Dim MyRange As Range Set MyRange = End Sub

Schritt 3: Erwähnen Sie nun den Bereich.

Code:

Sub Set_Example () MyRange als Bereich dimmen Set MyRange = Range ("A1: D5") End Sub

Schritt 4: Die Variable „MyRange“ entspricht nun dem Bereich A1 bis D5. Mit dieser Variablen können wir auf alle Eigenschaften und Methoden dieses Bereichs zugreifen.

Wir können kopieren, einen Kommentar in Excel hinzufügen und viele andere Dinge tun.

Zum Beispiel habe ich hier einige Zahlen erstellt.

Mit der Variablen ändere ich jetzt die Schriftgröße auf 12.

Code:

Sub Set_Example () MyRange als Bereich dimmen Set MyRange = Range ("A1: D5") MyRange.Font.Size = 12 End Sub

Dadurch wird die Schriftgröße des zugewiesenen Bereichs geändert.

Auf diese Weise können wir viele Dinge mit einem bestimmten Bereich tun, indem wir das Wort „Set“ verwenden.

# 2 - Set-Anweisung mit Arbeitsblatt-Objektvariablen

Wir haben gesehen, wie "set" mit einem Bereichsobjekt in VBA funktioniert. Es funktioniert genauso wie das Arbeitsblattobjekt.

Angenommen, Sie haben 5 Arbeitsblätter in Ihrer Arbeitsmappe und möchten weiterhin zu einem bestimmten Arbeitsblatt zurückkehren. Sie können diesen Arbeitsblattnamen auf die definierte Objektvariable setzen.

Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

Sub Set_Worksheet_Example () Dim Ws As Worksheet Set Ws = Arbeitsblätter ("Zusammenfassungsblatt") End Sub

Im obigen Code wird die Variable "Ws" als Objektvariable definiert, und in der nächsten Zeile setzen wir die Variable mit dem Wort "Set" auf das Arbeitsblatt "Summary Sheet".

Mit dieser Variablen können wir nun alle damit verbundenen Dinge tun. Schauen Sie sich die beiden folgenden Codesätze an.

# 1 - Ohne "Set" Word

Code:

Sub Set_Worksheet_Example1 () 'Zum Auswählen der Blattarbeitsblätter ("Zusammenfassungsblatt"). Wählen Sie' Zum Aktivieren der Blattarbeitsblätter ("Zusammenfassungsblatt"). Aktivieren 'Zum Ausblenden der Blattarbeitsblätter ("Zusammenfassungsblatt"). Visible = xlVeryHidden' To Blenden Sie die Arbeitsblätter des Blattes ein ("Zusammenfassungsblatt"). Visible = xlVisible End Sub

Jedes Mal, wenn ich das Arbeitsblattobjekt verwendet habe, um auf das Blatt „Zusammenfassungsblatt“ zu verweisen, ist der Code so langwierig und erfordert viel Zeit zum Eingeben.

Als Teil des riesigen Codes ist es frustrierend, den Arbeitsblattnamen jedes Mal so einzugeben, wenn Sie auf das Arbeitsblatt verweisen müssen.

Schauen Sie sich nun den Vorteil der Verwendung des Wortes Set in Code an.

# 2 - Mit "Set" Word

Code:

Sub Set_Worksheet_Example() Dim Ws As Worksheet Set Ws = Worksheets("Summary Sheet") 'To select the sheet Ws.Select 'To Activate the sheet Ws.Activate 'To hide the sheet Ws.Visible = xlVeryHidden 'To unhide the sheet Ws.Visible = xlVisible End Sub

The moment we set the worksheet name, we can see the variable name while entering the code as part of the list.

#3 - Set Statement with Workbook Object Variables

The real advantage of the word “Set” in VBA arises when we need to reference different workbooks.

When we work with different workbooks, it is so hard to type in the full name of the workbook, along with its file extension.

Assume you have two different workbooks named “Sales Summary File 2018.xlsx” and “Sales Summary File 2019.xlsx” we can set the two workbooks like the below code.

Code:

Sub Set_Workbook_Example1 () Dim Wb1 als Arbeitsmappe Dim Wb2 als Arbeitsmappe Set Wb1 = Arbeitsmappen ("Verkaufszusammenfassungsdatei 2018.xlsx") Set Wb2 = Arbeitsmappen ("Verkaufszusammenfassungsdatei 2019.xlsx") End Sub

Jetzt entspricht die Variable Wb1 der Arbeitsmappe mit dem Namen "Sales Summary File 2018.xlsx" und die Variable Wb2 der Arbeitsmappe mit dem Namen "Sales Summary File 2019.xlsx".

Mit dieser Variablen können wir tatsächlich auf alle Eigenschaften und Methoden zugreifen, die der Arbeitsmappe zugeordnet sind.

Wir können den Code wie folgt kürzen.

Ohne Set Keyword zum Aktivieren der Arbeitsmappe zu verwenden:

Arbeitsmappen ("Sales Summary File 2018.xlsx"). Aktivieren

Verwenden des Set-Schlüsselworts zum Aktivieren der Arbeitsmappe:

Wb1.Aktivieren

Dies vereinfacht das Schreiben des Code-Loses und sobald der Arbeitsmappenname festgelegt ist, besteht die Gefahr eines Tippfehlers bei den Arbeitsmappennamen.

Interessante Beiträge...