VBA objekt potreban - Kako ispraviti pogrešku potrebnu za objekt u programu Excel VBA?

Predmet potreban u programu Excel VBA

Pogreške su sastavni dio kodiranja, ali pravi je genij u pronalaženju pogreške i ispravljanju tih pogrešaka. Prvi korak u ispravljanju tih pogrešaka je inteligencija pronalaženja razloga zašto se te pogreške javljaju. Ako možete pronaći zašto te pogreške dolaze, vrlo je jednostavan posao popraviti te pogreške bez znojenja. Jedna od takvih pogrešaka u VBA kodiranju je "Object Required".

Ako se sjećate, dok učimo varijable i dodjeljujemo tipove podataka tim varijablama, imamo i tipove podataka „Objekt“. Kada se dodijeli tip podataka objekta i ako taj objekt ne postoji u radnom listu ili radnoj knjizi na koju mislimo ići, tada bismo dobili poruku o pogrešci VBA kao "Object Required" Dakle, kao novi koder, uobičajeno je u tim situacijama navoditi paniku jer na početnoj razini početnik ne može pronaći uzrok ove pogreške.

Zašto se događa pogreška potrebna za objekt? (i … Kako to popraviti?)

Ok, potrebna su dva ili tri primjera da bismo stvarno razumjeli zašto se ova pogreška javlja i kako je ispraviti.

Na primjer, pogledajte donji kod.

Kodirati:

Sub Last_Row () Zatamni Wb kao radnu knjigu Zatamni kao radni list Zatamni MyToday Kao datum Postavi Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Dopustite mi da vam objasnim gornji kod.

Proglasio sam tri varijable, a prve dvije varijable odnose se na objekte "Radna knjiga" i "Radni list". Treća varijabla odnosi se na tip podataka "Datum".

Kada su varijabli dodijeljeni tipovi podataka „Objekt“, trebamo upotrijebiti tipku riječi „Set“ kako bismo varijabli dodijelili referencu objekta, pa u sljedeća dva retka, pomoću ključne riječi „Set“, I dodijelili su referencu „ThisWorkbook“ varijabli „Wb“, jer ova varijabla sadrži tip podataka objekta kao „Workbook“, a za varijablu „Ws“ dodijelio sam objekt radnog lista „Data“ radnog lista u ovoj radnoj knjizi.

Postavi Wb = ThisWorkbook
Postavi Ws = ThisWorkbook.Worksheets ("Data")
  • U sljedećem retku za varijablu tipa podataka "Datum" također sam koristio ključnu riječ "Postavi" da dodijelim vrijednost vrijednosti ćelije A1 u ovoj radnoj knjizi (Wb) i na radnom listu "Podaci" (Ws).
Postavi MyToday = Wb.Ws.Cells (1, 1)
  • U sljedećem retku prikazujemo vrijednost varijable vrijednosti "MyDate" ćelije A1 vrijednosti u okviru za poruke u VBA.
MsgBox MyToday
  • Ok, pokrenimo ovaj kod i pogledajmo što ćemo dobiti kao rezultat.

Kao što vidite gore, prikazuje poruku o pogrešci VBA kao "Object Required". Ok, vrijeme je da ispitamo zašto dobivamo ovu poruku o pogrešci.

  • Na gornjoj slici poruke o pogrešci u odjeljku koda, dok je prikazivala poruku pogreške, plavi bojom je označio dio koda.
  • Dakle, ostaje pitanje zašto smo dobili ovu pogrešku. Prvo što moramo vidjeti je upravo ta vrsta varijabilnih podataka. Vratite se na prethodni redak koda gdje smo varijabli "MyDate" dodijelili tip podataka.
  • Vrstu podataka varijable dodijelili smo "Datum" i sada se vraćamo na redak pogreške.

U ovom smo retku koristili ključnu riječ "Set", dok naša vrsta podataka nije vrsta podataka "Objekt". Dakle, u trenutku kada VBA kôd vidi ključnu riječ "Set", pretpostavlja da je to vrsta podataka objekta i kaže da zahtijeva referencu na objekt.

Dakle, donji redak je "Set", a ključna riječ koristi se samo za referencu na objektne varijable kao što su radni list, radna knjiga itd. …

Primjer # 1

Sada pogledajte donji kod.

Kodirati:

Sub Object_Required_Error () Raspon ("A101"). Vrijednost = Primjena1.WorksheetFunction.Sum (Raspon ("A1: A100")) Kraj Sub

U gornjem kodu koristili smo funkciju radnog lista "SUM" da bismo dobili ukupne vrijednosti ćelija od A1 do A100. Kada pokrenete ovaj kod, naići ćemo na donju pogrešku.

Ups !! Kaže, "Pogreška u vremenu izvođenja '424': Object Required.

Pogledajmo sada pomno kod.

Umjesto da koristimo "Application", pogrešno smo upotrijebili "Application1", pa je došlo do pogreške "Object Required" u VBA kodu.

Ako je omogućena riječ "Option Explicit", dobit ćemo pogrešku "Variable Not Defined".

Stvari koje treba zapamtiti

  • Object Required znači da referenca tipa podataka o objektu mora biti točna.
  • Kada opcija eksplicitna riječ nije omogućena u kodiranju, dobit ćemo pogrešku Object Required za pogrešno napisane varijabilne riječi, a ako je Option Explicit omogućena, dobit ćemo pogrešku koja nije definirana za pogrešno napisane varijabilne riječi.

Zanimljivi članci...