VBA-Fehler Objektvariable oder With-Blockvariable nicht festgelegt

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 4, 2023

In diesem Artikel wird der VBA-Fehler Objektvariable oder With-Blockvariable nicht festgelegt erklärt.

Objektvariable oder With-Blockvariable nicht festgelegt

Dieser relativ häufige Fehler tritt genau aus dem Grund auf, den die Meldungsbox angibt. Die Objektvariable oder With-Blockvariable ist noch nicht festgelegt worden!

Objektvariable nicht festgelegt

Betrachten wir den folgenden Code:

Sub TestObjekt()
    Dim wks as Worksheet
    wks.Name = "Tabelle1"
End Sub

Wir haben eine neue Objektvariable namens „wks“ als Arbeitsblatt deklariert.

Dann versuchen wir, dieses Blatt „Tabelle1“ zu nennen.

Wenn wir den Code ausführen, erhalten wir jedoch den Laufzeitfehler. Wenn wir auf die Schaltfläche Debuggen klicken, bleibt der Code in der Zeile stehen, in der wir versuchen, das Blatt zu benennen.

Objektvariable nicht festgelegt Fehlerzeile

Wir versuchen, die Variable „wks“ zu belegen, aber wir haben die Variable nicht einem bestimmten Blatt zugewiesen, sondern sie nur als Variable deklariert. Obwohl die Variable deklariert ist, existiert das Objekt also nicht wirklich!

Betrachten wir den geänderten Code unten:

Sub TestObject()
    Dim wks as Worksheet
    Set wks = ActiveSheet
    wks.Name = "Tabelle1"
End Sub

Mit dieser Codezeile haben wir nun das Objekt erstellt.

Set wks = ActiveSheet

Der Code wird dann ohne Fehler ausgeführt.

With-Blockvariable nicht festgelegt

Betrachten wir nun diesen Code:

Sub TestWith()
    Dim wks As Worksheet
    With wks
      .Name = "Tabelle1"
      .Activate
    End With
End Sub

Wenn wir diesen Code ausführen, erhalten wir denselben Fehler

Fehlermeldung With Blockvariable nicht festgelegt

Wenn wir auf Debuggen klicken, bleibt der Code innerhalb des WITH….END WITH-Blocks stehen. Daher kommt der Fehler mit der Blockvariablen.

With Blockvariable nicht festgelegt Fehlerzeile

Der Fehler ist eigentlich derselbe und auch hier lösen wir ihn, indem wir das Objekt erstellen.

Sub TestWith()
    Dim wks As Worksheet
    Set wks = ActiveSheet
    With wks
      .Name = "Tabelle1"
      .Activate
    End With
End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples