
In VBA (Visual Basic for Applications) wird die `Set`-Anweisung verwendet, um Objektreferenzen zuzuweisen. Dies ist wichtig, da VBA zwischen simplen Datentypen (wie Integer, String usw.) und Objekttypen (wie Range, Worksheet, Workbook usw.) unterscheidet. Während bei den meisten Datentypen eine einfache Zuweisung mit dem Gleichheitszeichen (`=`) ausreicht, benötigen Objekttypen die `Set`-Anweisung, um sie korrekt zuzuweisen. Hier sind einige Beispiele zur Veranschaulichung:
Beispiel: Zuweisung eines Range-Objekts
Dim rng As Range
Set rng = Worksheets("Tabelle1").Range("A1")
In diesem Beispiel wird eine `Range`-Variable namens `rng` deklariert und auf die Zelle A1 auf dem Arbeitsblatt “Tabelle1” gesetzt.
Beispiel: Zuweisung eines Worksheet-Objekts
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Hier wird ein `Worksheet`-Objekt auf das Arbeitsblatt “Tabelle1” im aktuellen Workbook gesetzt.
Beispiel: Zuweisung eines Workbook-Objekts
Dim wb As Workbook
Set wb = Workbooks.Open("C:PfadzuIhrerDatei.xlsx")
Dies öffnet eine Arbeitsmappe aus einem bestimmten Pfad und weist sie der `wb`-Variablen zu.
Beachten Sie:
Set rng = Nothing
- Set ist nur für Objekte erforderlich. Bei Variablen, die keine Objektreferenzen sind (wie Integer, String etc.), benötigen Sie kein `Set`.
- Wenn Sie eine Objektvariable zurücksetzen oder leeren möchten, können Sie `Set` verwenden, um dem Objekt `Nothing` zuzuweisen:
Durch das Zuweisen von `Nothing` wird die Objektvariable von der Referenz auf das Objekt getrennt, wodurch der von dem Objekt belegte Speicher freigegeben werden kann, sofern keine anderen Referenzen auf dasselbe Objekt vorhanden sind.