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.