Pregled pogreške potrebnog objekta
Ovaj će vam vodič pomoći u rješavanju problema s objektima potrebnim pogreškama u VBA -i.
<
<
Pregled objekata
U VBA -u, objekt je "stvar" poput radnog lista, radne knjige, raspona, oblika, retka, stupca, korisničkog oblika, kontrole itd.
Objekti imaju svojstva (npr .: naziv, boja, skriveno) i metode (npr. Otvaranje, brisanje, spremanje, skrivanje). Ako pokušate primijeniti svojstvo ili metodu, VBA treba valjani objekt na koji će primijeniti svojstva ili metode.
Ako ne date valjani objekt, primit ćete Potrebna pogreška objekta.
Ovaj će vam vodič pomoći u rješavanju pogrešaka potrebnih za objekt.
#1. Opcija Eksplicitni / pogrešno napisani nazivi varijabli
Prvo provjerite jeste li pogrešno napisali naziv objekta. Pogrešno napisan naziv može uzrokovati Object Required Error.
To se može dogoditi s postojećim nazivima objekata:
<>
Ili s promjenjivim imenima:
<>
Jedan od dobrih načina da spriječite pogrešno napisane nazive varijabli je da na vrhu modula koda deklarirate opciju Explicit.
1 | Opcija Eksplicitno |
Opcija Explicit tjera vas da deklarirate svoje varijable. Sada kada otklonite pogreške <> svog koda, primit ćete poruku da trebate definirati varijablu:
<>
To bi vam trebalo pomoći u zaključku da je varijabla pogrešno napisana.
VBA programiranje | Generator koda radi za vas!
#2 Promjenjivi zadaci
Zatim provjerite jeste li pravilno dodijelili svoje varijable.
Varijable objekta moraju se dodijeliti pomoću Set Object =: <>
< Ako ne koristite Set za dodjelu varijabli objekta, primit ćete pogrešku Object Required. <> Slično, neobjektne varijable treba dodijeliti bez skupa: <> Ako pokušate upotrijebiti Set na varijabli koja nije objekt, primit ćete pogrešku Object Required. <> Je li vaš kôd u modulu na razini radnog lista? Ako je tako, morat ćete biti posebno oprezni kada govorite o imenovanim rasponima na drugim radnim listovima. Na primjer, možda imate raspon imena na razini radne knjige "Datum", u uobičajenom modulu koda možete nazvati imenovani raspon ovako: Međutim, ako se pozivate na imenovani raspon iz modula na razini radnog lista, morate izričito definirati radni list na kojem se nalazi imenovani raspon: U suprotnom ćete naići na pogrešku: <>>
#3 Moduli na razini radnog lista
1 MsgBox Range ("Datum"). Vrijednost
1 MsgBox Sheets ("Sheet2"). Raspon ("Date"). Vrijednost