VBA-objekt krævet - Sådan løses objekt krævet fejl i Excel VBA?

Indholdsfortegnelse

Objekt krævet i Excel VBA

Fejl er en del af kodningssproget, men det virkelige geni ligger i at finde fejlen og rette disse fejl. Det første skridt til at rette disse fejl er intelligensen til at finde ud af, hvorfor disse fejl opstår. Hvis du kan finde ud af, hvorfor disse fejl kommer, er det et meget let job at rette disse fejl uden at svede. En sådan fejl i VBA-kodning er "Objekt krævet."

Hvis du husker, har vi også "Objekt" -datatyper, mens vi lærer variabler og tildeler datatyper til disse variabler. Når objektdatatypen er tildelt, og hvis objektet ikke findes i regnearket eller projektmappen, som vi henviser til at gå, ville vi få VBA-fejlmeddelelsen som "Objekt krævet." Så som en ny koder er det almindeligt at tilkendegive panik i disse situationer, fordi en begynder på startniveau ikke kan finde årsagen til denne fejl.

Hvorfor opstår der krævet objekt? (og … Hvordan fikser man det?)

Ok, det tager to eller tre eksempler for virkelig at forstå, hvorfor denne fejl opstår, og hvordan man løser den.

Se f.eks. Nedenstående kode.

Kode:

Sub Last_Row () Dim Wb som projektmappe Dim Ws som regneark Dim MyToday som datosæt Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Lad mig forklare dig ovenstående kode til dig.

Jeg har erklæret tre variabler, og de to første variabler henviser til "Workbook" og "Worksheet" objekterne. Den tredje variabel henviser til datatypen "Dato".

Når "Objekt" -datatyperne er tildelt variablen, skal vi bruge ordet "Set" -tasten til at tildele referencen til objektet til variablen, så i de næste to linjer ved hjælp af "Set" nøgleordet, I har tildelt referencen af ​​"ThisWorkbook" til variablen "Wb", fordi denne variabel holder objektdatatypen som "Workbook", og for variablen "Ws" har jeg tildelt regnearkobjektet til "Data" -arket i denne projektmappe.

Indstil Wb = ThisWorkbook
Set Ws = ThisWorkbook.Worksheets ("Data")
  • I den næste linje for "Dato" -datatypevariablen har jeg også brugt nøgleordet "Sæt" til at tildele værdien af ​​celle A1-værdien i denne projektmappe (Wb) og i regnearket "Data" (Ws).
Indstil MyToday = Wb.Ws.Cells (1, 1)
  • I den næste linje viser vi værdien af ​​"MyDate" -variabel for celle A1-værdi i meddelelsesfeltet i VBA.
MsgBox MyToday
  • Ok, lad os køre denne kode og se, hvad vi får som et resultat.

Som du kan se ovenfor, viser den VBA-fejlmeddelelsen som "Objekt krævet." Ok, det er tid til at undersøge, hvorfor vi får denne fejlmeddelelse.

  • I ovenstående fejlmeddelelsesbillede i kodeafsnittet, mens det viser fejlmeddelelsen, har det fremhævet fejldelen af ​​koden med blå farve.
  • Så spørgsmålet er stadig, hvorfor vi fik denne fejl. Den første ting, vi skal se, er denne specifikke variable datatype. Gå tilbage til den forrige kodelinje, hvor vi har tildelt datatypen til variablen "MyDate."
  • Vi har tildelt den variable datatype som "Dato" og vender nu tilbage til fejllinjen nu.

I denne linje har vi brugt nøgleordet "Set", hvorimod vores datatype ikke er "Objekt" -datatypen. Så i det øjeblik VBA-kode ser nøgleordet "Set" antager det, at det er en objektdatatype og siger, at det kræver en objektreference.

Så den nederste linje er "Sæt" nøgleord bruges kun til at henvise til henvisning til objektvariablerne som regneark, projektmappe osv …

Eksempel nr. 1

Se nu på nedenstående kode.

Kode:

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

I ovenstående kode har vi brugt regnearkfunktionen "SUM" til at få det samlede antal celleværdier fra A1 til A100. Når du kører denne kode, støder vi på nedenstående fejl.

Ups !! Der står "Kørselstidsfejl '424': Objekt krævet.

Lad os nu se nærmere på koden nu.

I stedet for at bruge "Application" har vi fejlagtigt brugt "Application1", så dette stødte på fejlen "Object Required" i VBA-kode.

Hvis ordet "Option Explicit" er aktiveret, får vi fejlen "Variabel ikke defineret".

Ting at huske

  • Objekt påkrævet betyder, at objektdatatypereference skal være nøjagtig.
  • Når indstillingen eksplicit ord ikke er aktiveret i kodningen, får vi Objekt krævet fejl for forkert stavede variable ord, og hvis Option Explicit er aktiveret, får vi variablen ikke defineret fejl for forkert stavede variable ord.

Interessante artikler...