Referenzieren eines Arbeitsblatts mit Objektvariablen - Excel-Tipps

Inhaltsverzeichnis

Joe versucht, einen Fehler in einem neuen Makro herauszufinden, das er gerade geschrieben hat.

Die Zeile, die NextRow zuweist, gibt einen Fehler mit der Meldung "Objektvariable oder Nicht festgelegte Blockvariable" zurück.

Objektvariablen sind ziemlich cool. In den alten Tipps von würde ich eine reguläre Variable wie diese verwenden:

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

Es gibt einen besseren Weg. Sie können eine Variable als ein beliebiges Objekt definieren, z. B. ein Arbeitsblatt. Dies hat mehrere Vorteile. Es ist kürzer, die Objektvariable anstelle von Arbeitsblättern (OrigName) zu verwenden. Während Sie Code eingeben, erkennt VBA außerdem, dass es sich bei der Variablen um ein Arbeitsblatt handelt, und bietet die entsprechenden Eigenschaften und Methoden, nachdem Sie den Punkt eingegeben haben. Hier ist der neue Code:

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

Der Trick besteht jedoch darin, dass eine Objektvariable mit dem Schlüsselwort Set zugewiesen werden muss. Wenn Sie das Set nicht in den Code einfügen, erhalten Sie die etwas nicht intuitive "Objektvariable oder mit nicht festgelegter Blockvariable". Joe muss seiner Variablenzuweisung lediglich das Wort Set voranstellen.

Interessante Beiträge...