VBA-virhe 1004-Sovelluksen tai objektin määrittämä virhe

Tämä opetusohjelma selittää VBA-virheen 1004-sovelluksen tai objektin määrittämän virheen.

VBA-ajonaikainen virhe 1004 tunnetaan sovelluksen tai objektin määrittämänä virheenä, joka ilmenee koodin ollessa käynnissä. Koodausvirheiden tekeminen (katso Virheidenkäsittelyopas) on osa VBA: n oppimista, mutta virheen syyn tunteminen auttaa välttämään virheiden tekemistä tulevassa koodauksessa.

VBA -virhe 1004 - Objektia ei ole olemassa

Jos tarkoitamme koodissamme olevaa objektia, kuten alueen nimeä, jota ei ole määritelty, tämä virhe voi tapahtua, koska VBA -koodi ei löydä nimeä.

12345678 Sub CopyRange ()Himmennetty kopio kohteesta AlueHimmennä kopio alueeksiAseta CopyFrom = Sheets (1) .Range ("CopyFrom")Aseta CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

Yllä oleva esimerkki kopioi arvot nimetystä alueesta "CopyFrom" nimettyyn alueeseen "CopyTo" - edellyttäen tietenkin, että nämä ovat olemassa olevia nimettyjä alueita! Jos niitä ei ole, näyttöön tulee virhe 1004.

Yksinkertaisin tapa välttää tämä virhe yllä olevassa esimerkissä on luoda alueiden nimet Excel -työkirjaan tai viitata alueeseen perinteisessä rivi- ja sarakemuodossa, esim. Alue (“A1: A10”).

VBA -virhe 1004 - Nimi on jo otettu

Virhe voi ilmetä myös, jos yrität nimetä objektin uudelleen olemassa olevaksi objektiksi - esimerkiksi jos yritämme nimetä Taulukko1 uudelleen, mutta taulukolle antamasi nimi on jo toisen taulukon nimi.

123 AlanimiTyöarkki ()ActiveSheet.Name = "Sheet2"End Sub

Jos meillä on jo Sheet2, virhe ilmenee.

VBA -virhe 1004 - viittaus objektiin väärin

Virhe voi ilmetä myös silloin, kun olet viitannut virheellisesti koodiin. Esimerkiksi:

12345678 Sub CopyRange ()Himmennetty kopio kohteesta AlueHimmennä kopio alueeksiAseta CopyFrom = Alue ("A1: A10")Aseta CopyTo = alue ("C1: C10")Alue (CopyFrom)Alue (CopyTo) .PasteSpecial xlPasteValuesEnd Sub

Tämä antaa meille jälleen virheen 10004

Korjaa koodi, niin virhe ei enää näy.

12345678 Sub CopyRange ()Himmennetty kopio kohteesta AlueHimmennä kopio alueeksiAseta CopyFrom = Alue ("A1: A10")Aseta CopyTo = alue ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub

VBA -virhe 1004 - objektia ei löydy

Tämä virhe voi ilmetä myös silloin, kun yritämme avata työkirjan eikä työkirjaa löydy - työkirja on tässä tapauksessa objekti, jota ei löydy.

1234 Alitiedosto ()Dim wb TyökirjanaAseta wb = Työkirjat.Open ("C: \ Data \ TestFile.xlsx")End Sub

Vaikka viesti on erilainen virheruudussa, virhe on edelleen 1004.

wave wave wave wave wave