VBA kļūda 1004-lietojumprogrammas vai objekta noteikta kļūda

Šajā apmācībā tiks izskaidrota VBA kļūda 1004-lietojumprogrammas vai objekta noteikta kļūda.

VBA izpildes laika kļūda 1004 ir pazīstama kā lietojumprogrammas vai objekta noteikta kļūda, kas rodas koda darbības laikā. Kodēšanas kļūdu pieļaušana (skatiet mūsu kļūdu apstrādes rokasgrāmatu) ir neatņemama VBA apguves sastāvdaļa, taču, zinot, kāpēc rodas kļūda, varat izvairīties no kļūdām turpmākajā kodēšanā.

VBA kļūda 1004 - objekts nepastāv

Ja mēs atsaucamies uz objektu mūsu kodā, piemēram, diapazona nosaukumu, kas nav definēts, tad šī kļūda var rasties, jo VBA kods nevarēs atrast nosaukumu.

12345678 Sub CopyRange ()Dim CopyFrom kā diapazonsDim CopyTo kā diapazonsIestatīt CopyFrom = Sheets (1). Range ("CopyFrom")Iestatīt CopyTo = Sheets (1). Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesBeigu apakš

Iepriekš minētais piemērs kopēs vērtības no nosauktā diapazona “CopyFrom” uz nosaukto diapazonu “CopyTo” - protams, ja tie ir esošie nosauktie diapazoni! Ja to nav, tiks parādīta kļūda 1004.

Vienkāršākais veids, kā izvairīties no šīs kļūdas iepriekš minētajā piemērā, ir izveidot diapazonu nosaukumus Excel darbgrāmatā vai atsaukties uz diapazonu tradicionālajā rindu un kolonnu formātā, piemēram: Diapazons (“A1: A10”).

VBA kļūda 1004 - nosaukums jau ir pieņemts

Kļūda var rasties arī tad, ja mēģināt pārdēvēt objektu par jau esošu objektu - piemēram, ja mēs mēģinām pārdēvēt lapu1, bet lapas nosaukums, kas jau ir, ir citas lapas nosaukums.

123 Apakšnosaukuma darba lapa ()ActiveSheet.Name = "Lapa2"Beigu apakš

Ja mums jau ir Sheet2, tad radīsies kļūda.

VBA kļūda 1004 - nepareiza atsauce uz objektu

Kļūda var rasties arī tad, ja kodā esat nepareizi norādījis kādu objektu. Piemēram:

12345678 Sub CopyRange ()Dim CopyFrom kā diapazonsDim CopyTo kā diapazonsIestatīt CopyFrom = Diapazons ("A1: A10")Iestatīt CopyTo = Diapazons ("C1: C10")Diapazons (CopyFrom). KopētDiapazons (CopyTo) .PasteSpecial xlPasteValuesBeigu apakš

Tas atkal dos mums kļūdu 10004

Izlabojiet kodu, un kļūda vairs netiks rādīta.

12345678 Sub CopyRange ()Dim CopyFrom kā diapazonsDim CopyTo kā diapazonsIestatīt CopyFrom = Diapazons ("A1: A10")Iestatīt CopyTo = Diapazons ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesBeigu apakš

VBA kļūda 1004 - objekts nav atrasts

Šī kļūda var rasties arī tad, kad mēs mēģinām atvērt darbgrāmatu un darbgrāmata netiek atrasta - šajā gadījumā darbgrāmata ir neatrastais objekts.

1234 Apakš OpenFile ()Dim wb kā darbgrāmataIestatiet wb = Workbooks.Open ("C: \ Data \ TestFile.xlsx")Beigu apakš

Lai gan kļūdas lodziņā ziņojums būs atšķirīgs, kļūda joprojām ir 1004.

wave wave wave wave wave