VBA 1004-es hiba-Alkalmazás vagy objektum által meghatározott hiba

Ez az oktatóanyag elmagyarázza a VBA 1004-Alkalmazás vagy objektum által meghatározott hiba hibáját.

A 1004-es VBA futási idő hiba alkalmazás-vagy objektum-definiált hiba, amely a kód futása közben jelentkezik. A kódolási hibák elkövetése (lásd a Hibakezelési útmutatónkat) a VBA tanulásának része, de a hiba okának ismerete segít elkerülni a hibákat a jövőbeni kódolás során.

VBA 1004 -es hiba - Az objektum nem létezik

Ha a kódunkban szereplő objektumra, például egy tartománynévre, amelyet nem definiáltunk, akkor ez a hiba akkor fordulhat elő, mivel a VBA -kód nem találja a nevet.

12345678 Sub CopyRange ()Halvány másolás: mint tartományHalvány másolásTartománykéntSet CopyFrom = Sheets (1) .Range ("CopyFrom")Set CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CyyCopyTo.PasteSpecial xlPasteValuesEnd Sub

A fenti példa másolja az értékeket a „CopyFrom” tartományból a „CopyTo” tartományba - természetesen azzal a feltétellel, hogy ezek létező megnevezett tartományok! Ha ezek nem léteznek, akkor a 1004 -es hiba jelenik meg.

Ennek a hibának a legegyszerűbb módja a fenti példában, ha létrehozza a tartományneveket az Excel munkafüzetben, vagy hivatkozik a tartományra a hagyományos sor- és oszlopformátumban, pl. Tartomány („A1: A10”).

VBA 1004 -es hiba - a név már megvan

A hiba akkor is előfordulhat, ha egy objektumot már létező objektumra próbál átnevezni - például, ha megpróbáljuk átnevezni a Sheet1 -et, de a lapnak adott név már egy másik lap neve.

123 AlnévMunkalap ()ActiveSheet.Name = "Lap2"End Sub

Ha már van lapunk2, akkor a hiba bekövetkezik.

VBA hiba 1004 - Hibás hivatkozás egy objektumra

A hiba akkor is előfordulhat, ha helytelenül hivatkozott egy objektumra a kódjában. Például:

12345678 Sub CopyRange ()Halvány másolás: mint tartományHalvány másolásTartománykéntCopyFrom = Tartomány beállítása ("A1: A10")CopyTo = Tartomány beállítása ("C1: C10")Tartomány (CopyFrom). MásolásTartomány (CopyTo) .PasteSpecial xlPasteValuesEnd Sub

Ez ismét az 10004 -es hibát adja nekünk

Javítsa ki a kódot, és a hiba többé nem jelenik meg.

12345678 Sub CopyRange ()Halvány másolásA tartománybólHalvány másolásTartománykéntCopyFrom = Tartomány beállítása ("A1: A10")CopyTo = Tartomány beállítása ("C1: C10")CopyFrom.CyyCopyTo.PasteSpecial xlPasteValuesEnd Sub

VBA 1004 -es hiba - Az objektum nem található

Ez a hiba akkor is előfordulhat, ha megpróbálunk megnyitni egy munkafüzetet, de a munkafüzet nem található - ebben az esetben a munkafüzet a nem található objektum.

1234 OpenFile ()Dim wb Mint munkafüzetSet wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")End Sub

Bár az üzenet más lesz a hiba mezőben, a hiba továbbra is 1004.

wave wave wave wave wave