VBA pogreška 1004-Aplikacijski definirana ili objektno definirana pogreška

Ovaj će vodič objasniti VBA pogrešku 1004-aplikacijski definiranu ili objektno definiranu pogrešku.

VBA pogreška 1004 vremena izvođenja poznata je kao pogreška definirana aplikacijom ili objektno definirana greška koja se javlja dok se kôd izvodi. Pravljenje grešaka u kodiranju (vidi naš Vodič za rukovanje pogreškama) sastavni je dio učenja VBA -a, ali saznanje zašto dolazi do pogreške pomaže vam da izbjegnete pogreške u budućem kodiranju.

VBA pogreška 1004 - Objekt ne postoji

Ako govorimo o objektu u našem kodu, kao što je naziv raspona koji nije definiran, onda se ta pogreška može pojaviti jer VBA kôd neće moći pronaći ime.

12345678 Podkopirni raspon ()Zatamnite kopiju iz rasponaZatamnite CopyTo As RangePostavi CopyFrom = Sheets (1) .Range ("CopyFrom")Postavi CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesKraj podm

Gornji primjer će kopirati vrijednosti iz imenovanog raspona “CopyFrom” u imenovani raspon “CopyTo” - naravno pod uvjetom da su to postojeći imenovani rasponi! Ako ne postoje, prikazat će se pogreška 1004.

Najjednostavniji način izbjegavanja ove pogreške u gornjem primjeru je stvaranje naziva raspona u radnoj knjizi programa Excel ili upućivanje na raspon u tradicionalnom formatu retka i stupca, npr. Domet ("A1: A10").

VBA pogreška 1004 - Ime je već zauzeto

Pogreška se može pojaviti i ako pokušavate preimenovati objekt u objekt koji već postoji - na primjer ako pokušavamo preimenovati Sheet1, ali naziv koji dajete listu već je naziv drugog lista.

123 Radni list pod nazivom ()ActiveSheet.Name = "List 2"Kraj podm

Ako već imamo Sheet2, doći će do pogreške.

VBA pogreška 1004 - pogrešno upućivanje na objekt

Do pogreške može doći i ako ste pogrešno referencirali objekt u svom kodu. Na primjer:

12345678 Podkopirni raspon ()Zatamnite kopiju iz rasponaZatamnite CopyTo As RangePostavi CopyFrom = Raspon ("A1: A10")Postavi CopyTo = Raspon ("C1: C10")Raspon (CopyFrom) .CopyRaspon (CopyTo) .PasteSpecial xlPasteValuesKraj podm

To će nam još jednom dati grešku 10004

Ispravite kôd i pogreška se više neće prikazivati.

12345678 Podkopirni raspon ()Zatamnite kopiju iz rasponaZatamnite CopyTo As RangePostavi CopyFrom = Raspon ("A1: A10")Postavi CopyTo = Raspon ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesKraj podm

VBA pogreška 1004 - Objekt nije pronađen

Ova se pogreška može pojaviti i kada pokušavamo otvoriti radnu knjigu, a radna knjiga nije pronađena - radna knjiga u ovom slučaju je objekt koji nije pronađen.

1234 Sub OpenFile ()Dim wb Kao radna bilježnicaPostavite wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")Kraj podm

Iako će poruka u okviru za pogrešku biti drugačija, pogreška je i dalje 1004.

wave wave wave wave wave