VBA-Objekt erforderlich

In Excel VBA erforderliches Objekt

Fehler sind Teil der Codierungssprache, aber das wahre Genie besteht darin, den Fehler zu finden und diese Fehler zu beheben. Der erste Schritt zur Behebung dieser Fehler ist die Intelligenz, herauszufinden, warum diese Fehler auftreten. Wenn Sie herausfinden können, warum diese Fehler auftreten, ist es sehr einfach, diese Fehler zu beheben, ohne den Schweiß zu brechen. Ein solcher Fehler bei der VBA-Codierung ist "Objekt erforderlich".

Wenn Sie sich beim Lernen von Variablen und beim Zuweisen von Datentypen zu diesen Variablen erinnern, haben wir auch Datentypen "Objekt". Wenn der Objektdatentyp zugewiesen ist und dieses Objekt in dem Arbeitsblatt oder der Arbeitsmappe, auf die wir verweisen, nicht vorhanden ist, wird die VBA-Fehlermeldung "Objekt erforderlich" angezeigt . Als neuer Codierer ist es daher üblich, in solchen Situationen in Panik zu geraten, da Anfänger auf der Startebene die Ursache für diesen Fehler nicht finden können.

Warum tritt ein Fehler beim erforderlichen Objekt auf? (und… wie man es repariert?)

Ok, es sind zwei oder drei Beispiele erforderlich, um wirklich zu verstehen, warum dieser Fehler auftritt und wie er behoben werden kann.

Sie können diese Excel-Vorlage für VBA-Objekte hier herunterladen - Excel-Vorlage für VBA-Objekte erforderlich

Ein Beispiel finden Sie im folgenden Code.

Code:

 Sub Last_Row () Dim Wb als Arbeitsmappe Dim Ws als Arbeitsblatt Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Daten") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub 

Lassen Sie mich Ihnen den obigen Code für Sie erklären.

Ich habe drei Variablen deklariert und die ersten beiden Variablen beziehen sich auf die Objekte "Arbeitsmappe" und "Arbeitsblatt". Die dritte Variable bezieht sich auf den Datentyp "Datum".

Wenn die Datentypen "Objekt" der Variablen zugewiesen werden, müssen wir das Wort "Set" verwenden, um der Variablen die Referenz des Objekts zuzuweisen. In den nächsten beiden Zeilen verwenden Sie also das Schlüsselwort "Set", das ich zugewiesen habe Verweis von "ThisWorkbook" auf die Variable "Wb", da diese Variable den Objektdatentyp als "Arbeitsmappe" enthält und ich für die Variable "Ws" das Arbeitsblattobjekt des Arbeitsblatts "Daten" in dieser Arbeitsmappe zugewiesen habe.

 Setze Wb = ThisWorkbook
 Setze Ws = ThisWorkbook.Worksheets ("Daten")
  • In der nächsten Zeile für die Datentypvariable "Datum" habe ich auch das Schlüsselwort "Set" verwendet, um den Wert des Zellen-A1-Werts in dieser Arbeitsmappe (Wb) und im Arbeitsblatt "Daten" (Ws) zuzuweisen.
 Setze MyToday = Wb.Ws.Cells (1, 1)
  • In der nächsten Zeile zeigen wir den Wert des Variablenwerts "MyDate" des Werts der Zelle A1 im Meldungsfeld in VBA an.
MsgBox MyToday
  • Ok, lassen Sie uns diesen Code ausführen und sehen, was wir als Ergebnis erhalten.

Wie Sie oben sehen können, wird die VBA-Fehlermeldung als "Objekt erforderlich" angezeigt . Ok, es ist Zeit zu untersuchen, warum wir diese Fehlermeldung erhalten.

  • In der obigen Fehlermeldung im Codeabschnitt wurde beim Anzeigen der Fehlermeldung der Fehlerteil des Codes mit blauer Farbe hervorgehoben.

  • Die Frage bleibt also, warum wir diesen Fehler bekommen haben. Das erste, was wir sehen müssen, ist dieser bestimmte variable Datentyp. Gehen Sie zurück zur vorherigen Codezeile, in der wir den Datentyp der Variablen "MyDate" zugewiesen haben.

  • Wir haben den variablen Datentyp als "Datum" zugewiesen und kehren nun zur Fehlerzeile zurück.

In dieser Zeile haben wir das Schlüsselwort "Set" verwendet, während unser Datentyp nicht der Datentyp "Object" ist. In dem Moment, in dem VBA-Code das Schlüsselwort "Set" sieht, wird davon ausgegangen, dass es sich um einen Objektdatentyp handelt, und es wird angegeben, dass eine Objektreferenz erforderlich ist.

Unter dem Strich wird das Schlüsselwort "Set" verwendet, um nur auf die Objektvariablen wie Arbeitsblatt, Arbeitsmappe usw. zu verweisen.

Beispiel 1

Schauen Sie sich nun den folgenden Code an.

Code:

 Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub 

Im obigen Code haben wir die Arbeitsblattfunktion "SUM" verwendet, um die Summe der Zellenwerte von A1 bis A100 zu erhalten. Wenn Sie diesen Code ausführen, wird der folgende Fehler angezeigt.

Hoppla!! Es heißt "Laufzeitfehler '424': Objekt erforderlich.

Schauen wir uns jetzt den Code genauer an.

Anstatt "Anwendung" zu verwenden, haben wir fälschlicherweise "Anwendung1" verwendet, sodass der Fehler "Objekt erforderlich" im VBA-Code aufgetreten ist.

Wenn das Wort "Option Explicit" aktiviert ist, wird der Fehler "Variable Not Defined" angezeigt.

Dinge, an die man sich erinnern sollte

  • Objekt erforderlich bedeutet, dass die Referenz des Objektdatentyps genau sein muss.
  • Wenn das explizite Wort "Option" in der Codierung nicht aktiviert ist, wird der Fehler "Objekt erforderlich" für falsch geschriebene variable Wörter angezeigt. Wenn die Option "Explizit" aktiviert ist, wird der Fehler "Variable nicht definiert" für falsch geschriebene variable Wörter angezeigt.