VBA-fejl 1004-Applikationsdefineret eller objektdefineret fejl

Denne vejledning forklarer VBA-fejl 1004- applikationsdefineret eller objektdefineret fejl.

VBA-driftstidsfejl 1004 er kendt som en applikationsdefineret eller objektdefineret fejl, der opstår, mens koden kører. At lave kodningsfejl (se vores fejlhåndteringsvejledning) er en vigtig del af at lære VBA, men at vide, hvorfor der opstår en fejl, hjælper dig med at undgå fejl i fremtidig kodning.

VBA -fejl 1004 - Objektet findes ikke

Hvis vi refererer til et objekt i vores kode, f.eks. Et områdenavn, der ikke er defineret, kan denne fejl opstå, da VBA -koden ikke kan finde navnet.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeIndstil CopyFrom = Sheets (1) .Range ("CopyFrom")Indstil CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesAfslut Sub

Eksemplet ovenfor kopierer værdierne fra det navngivne område "CopyFrom" til det navngivne område "CopyTo" - på betingelse af at det er eksisterende navngivne områder! Hvis de ikke findes, vises fejlen 1004.

Den enkleste måde at undgå denne fejl i eksemplet ovenfor er at oprette områdenavne i Excel -projektmappen eller henvise til området i det traditionelle række- og kolonneformat, f.eks .: Område ("A1: A10").

VBA -fejl 1004 - Navn allerede taget

Fejlen kan også opstå, hvis du forsøger at omdøbe et objekt til et objekt, der allerede findes - for eksempel hvis vi forsøger at omdøbe Sheet1, men det navn, du giver arket, er allerede navnet på et andet ark.

123 Sub NameWorksheet ()ActiveSheet.Name = "Sheet2"Afslut Sub

Hvis vi allerede har et Sheet2, vil fejlen opstå.

VBA -fejl 1004 - Ukorrekt henvisning til et objekt

Fejlen kan også opstå, når du har henvist til et objekt forkert i din kode. For eksempel:

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeIndstil CopyFrom = Range ("A1: A10")Indstil CopyTo = Range ("C1: C10")Område (CopyFrom) .CopyOmråde (CopyTo) .PasteSpecial xlPasteValuesAfslut Sub

Dette vil igen give os fejl 10004

Ret koden, og fejlen vises ikke længere.

12345678 Sub CopyRange ()Dim CopyFrom As RangeDim CopyTo As RangeIndstil CopyFrom = Range ("A1: A10")Indstil CopyTo = Range ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesAfslut Sub

VBA -fejl 1004 - Objektet blev ikke fundet

Denne fejl kan også opstå, når vi prøver at åbne en projektmappe, og projektmappen ikke findes - projektmappen i dette tilfælde er det objekt, der ikke findes.

1234 Sub OpenFile ()Dim wb Som projektmappeIndstil wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")Afslut Sub

Selvom meddelelsen vil være anderledes i fejlboksen, er fejlen stadig 1004.

wave wave wave wave wave