Napaka VBA 1004-Napaka, ki jo definira aplikacija ali objekt

Ta vadnica bo razložila napako VBA 1004-napaka, ki jo določa aplikacija ali predmet.

Napaka časa izvajanja VBA 1004 je znana kot napaka, ki jo definira aplikacija ali objekt, ki se pojavi med izvajanjem kode. Napake pri kodiranju (glejte naš priročnik za ravnanje z napakami) so sestavni del učenja VBA, vendar veste, zakaj pride do napake, se izognete napakam pri prihodnjem kodiranju.

Napaka VBA 1004 - Objekt ne obstaja

Če govorimo o objektu v naši kodi, kot je ime obsega, ki ni bilo definirano, lahko pride do te napake, saj koda VBA ne bo mogla najti imena.

12345678 Sub CopyRange ()Zatemni kopijo Iz območjaZatemni CopyTo As RangeNastavi CopyFrom = Sheets (1). Range ("CopyFrom")Nastavi CopyTo = Sheets (1). Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

Zgornji primer bo kopiral vrednosti iz imenovanega obsega “CopyFrom” v imenovani obseg “CopyTo” - seveda pod pogojem, da gre za obstoječa imenovana območja! Če ne obstajajo, se prikaže napaka 1004.

Najpreprostejši način, da se v zgornjem primeru izognete tej napaki, je, da ustvarite imena obsegov v Excelovem delovnem zvezku ali se sklicujete na obseg v tradicionalni obliki vrstice in stolpca, na primer: Obseg ("A1: A10").

Napaka VBA 1004 - ime že zasedeno

Napaka se lahko pojavi tudi, če poskušate preimenovati predmet v objekt, ki že obstaja - na primer, če poskušamo preimenovati Sheet1, vendar je ime, ki ga dajete listu, že ime drugega lista.

123 Podime Delovni list ()ActiveSheet.Name = "List2"End Sub

Če že imamo List2, bo prišlo do napake.

Napaka VBA 1004 - Nepravilno sklicevanje na objekt

Napaka se lahko pojavi tudi, če ste se v kodi napačno sklicevali na predmet. Na primer:

12345678 Sub CopyRange ()Zatemni kopijo Iz območjaZatemni CopyTo As RangeNastavi CopyFrom = Range ("A1: A10")Nastavi CopyTo = Razpon ("C1: C10")Obseg (CopyFrom). KopirajObseg (CopyTo) .PasteSpecial xlPasteValuesEnd Sub

S tem bomo znova dobili napako 10004

Popravite kodo in napaka ne bo več prikazana.

12345678 Sub CopyRange ()Zatemni kopijo Iz območjaZatemni CopyTo As RangeNastavi CopyFrom = Range ("A1: A10")Nastavi CopyTo = Razpon ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

Napaka VBA 1004 - Objekt ni bil najden

Do te napake lahko pride tudi, ko poskušamo odpreti delovni zvezek in delovnega zvezka ne najdemo - delovni zvezek je v tem primeru predmet, ki ga ni mogoče najti.

1234 Sub OpenFile ()Dim wb Kot delovni zvezekSet wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")End Sub

Čeprav bo sporočilo v polju za napako drugačno, je napaka še vedno 1004.

wave wave wave wave wave