VBA-Objekt erforderlich - Wie behebe ich den erforderlichen Objektfehler in Excel VBA?

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 ins Schwitzen zu geraten. Ein solcher Fehler bei der VBA-Codierung ist "Objekt erforderlich".

Wenn Sie sich erinnern, haben wir beim Lernen von Variablen und beim Zuweisen von Datentypen zu diesen Variablen auch Objekttypen. Wenn der Objektdatentyp zugewiesen ist und dieses Objekt in dem Arbeitsblatt oder der Arbeitsmappe, auf die wir uns beziehen, 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 ein Anfänger auf der Anfangsebene die Ursache für diesen Fehler nicht finden kann.

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.

Schauen Sie sich zum Beispiel den folgenden Code an.

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 der Variablen die Datentypen "Objekt" zugewiesen werden, müssen wir das Wort "Set" verwenden, um der Variablen die Referenz des Objekts zuzuweisen. Verwenden Sie daher in den nächsten beiden Zeilen das Schlüsselwort "Set", I. haben der Variablen "Wb" den Verweis "ThisWorkbook" zugewiesen, da diese Variable den Objektdatentyp "Workbook" enthält, und für die Variable "Ws" habe ich das Arbeitsblattobjekt des Arbeitsblatts "Data" in dieser Arbeitsmappe zugewiesen.

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 der Fehlerteil des Codes mit blauer Farbe hervorgehoben, während die Fehlermeldung angezeigt wurde.
  • 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.

Interessante Beiträge...