VBA-objekt krävs - Hur fixar jag objekt som krävs i Excel VBA?

Innehållsförteckning

Objekt krävs i Excel VBA

Fel är en del av kodningsspråket, men det verkliga geniet ligger i att hitta felet och åtgärda dessa fel. Det första steget i att åtgärda dessa fel är intelligensen att hitta varför dessa fel uppstår. Om du kan hitta varför dessa fel kommer, är det ett mycket enkelt jobb att åtgärda dessa fel utan att svettas. Ett sådant fel i VBA-kodning är "Objekt krävs."

Om du kommer ihåg, när vi lär oss variabler och tilldelar datatyper till dessa variabler, har vi också "Objekt" -datatyper. När objektdatatypen tilldelas och om objektet inte finns i kalkylbladet eller arbetsboken som vi hänvisar till kommer vi att få VBA-felmeddelandet som "Objekt krävs." Så som en ny kodare är det vanligt att ange panik i dessa situationer eftersom en nybörjare vid startnivån inte kan hitta orsaken till detta fel.

Varför uppstår ett obligatoriskt objekt? (och … Hur fixar jag det?)

Ok, det krävs två eller tre exempel för att verkligen förstå varför detta fel uppstår och hur man åtgärdar det.

Titta till exempel på koden nedan.

Koda:

Sub Last_Row () Dim Wb som arbetsbok Dim Ws som arbetsblad Dim MyToday som datumuppsättning Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Ställ in MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Låt mig förklara för dig koden ovan.

Jag har deklarerat tre variabler, och de två första variablerna hänvisar till ”Arbetsbok” och ”Kalkylblad” -objekten. Den tredje variabeln hänvisar till datatypen ”Datum”.

När datatyperna "Objekt" tilldelas variabeln måste vi använda ordet "Set" -tangenten för att tilldela objektets referens till variabeln, så i nästa två rader, genom att använda nyckelordet "Set", I har tilldelat referensen av "ThisWorkbook" till variabeln "Wb" eftersom denna variabel håller objektdatatypen som "Workbook" och för variabeln "Ws" har jag tilldelat kalkylarkobjektet för "Data" -ark i denna arbetsbok.

Ställ in Wb = ThisWorkbook
Ställ in Ws = ThisWorkbook.Worksheets ("Data")
  • I nästa rad för datatypvariabeln "Date" har jag också använt nyckelordet "Set" för att tilldela värdet på cellen A1-värdet i denna arbetsbok (Wb) och i kalkylbladet "Data" (Ws).
Ställ in MyToday = Wb.Ws.Cells (1, 1)
  • I nästa rad visar vi värdet på variabelvärdet "MyDate" för cell A1-värdet i meddelandefältet i VBA.
MsgBox MyToday
  • Ok, låt oss köra den här koden och se vad vi får som resultat.

Som du kan se ovan visar det VBA-felmeddelandet som "Objekt krävs." Okej, det är dags att undersöka varför vi får detta felmeddelande.

  • I ovanstående felmeddelandebild i kodavsnittet, medan felmeddelandet visas, har det markerat feldelen av koden med blå färg.
  • Så frågan kvarstår är varför vi fick det här felet. Det första vi behöver se är just denna variabla datatyp. Gå tillbaka till föregående kodrad där vi har tilldelat datatypen till variabeln "MyDate."
  • Vi har tilldelat den variabla datatypen "Datum" och kommer nu tillbaka till felraden nu.

I den här raden har vi använt nyckelordet "Set", medan vår datatyp inte är datatypen "Object". Så när VBA-koden ser nyckelordet "Set" antar det att det är en objektdatatyp och säger att det kräver en objektreferens.

Så, den nedersta raden är "Ange" nyckelord används för att referera endast för att referera till objektvariabler som kalkylblad, arbetsbok, etc. …

Exempel 1

Ta nu en titt på koden nedan.

Koda:

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

I ovanstående kod har vi använt kalkylfunktionen "SUM" för att få summan av cellvärdena från A1 till A100. När du kör den här koden stöter vi på följande fel.

Hoppsan!! Det står ”Run-time error '424': Object Required.

Låt oss nu titta noga på koden nu.

Istället för att använda "Application" har vi felaktigt använt "Application1", så detta stötte på felet "Object Required" i VBA-kod.

Om ordet ”Option Explicit” är aktiverat får vi “Variable Not Defined” -felet.

Saker att komma ihåg

  • Objekt krävs innebär att referens för objektdatatyp måste vara korrekt.
  • När alternativets explicita ord inte är aktiverat i kodningen får vi Object Required-fel för felstavade variabla ord, och om Option Explicit är aktiverat får vi variabeln ej definierat fel för felstavade variabla ord.

Intressanta artiklar...