See õpetus selgitab VBA viga 1004-rakenduse või objekti määratletud viga.
VBA käitusaja viga 1004 on tuntud kui rakenduse või objekti määratletud viga, mis ilmneb koodi töötamise ajal. Kodeerimisvigade tegemine (vt meie veakäsitlusjuhendit) on VBA õppimise lahutamatu osa, kuid tõrke põhjuste teadmine aitab teil tulevikus vigu vältida.
VBA tõrge 1004 - objekti pole olemas
Kui me viitame oma koodis olevale objektile, näiteks määratlemata vahemiku nimele, võib see tõrge ilmneda, kuna VBA -kood ei leia nime.
12345678 | Sub CopyRange ()Dim CopyFrom As RangeTumeda kopeerimise vahemikuksMäära CopyFrom = Sheets (1) .Range ("CopyFrom")Määra CopyTo = Sheets (1) .Range ("CopyTo")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub |
Ülaltoodud näites kopeeritakse väärtused nimega vahemikust „CopyFrom” nimeta- tud vahemikku „CopyTo” - muidugi tingimusel, et need on olemasolevad nimevahemikud! Kui neid pole, kuvatakse tõrge 1004.
Lihtsaim viis selle vea vältimiseks ülaltoodud näites on luua vahemiku nimed Exceli töövihikus või viidata vahemikule traditsioonilises rea- ja veeruvormingus, nt: Vahemik („A1: A10”).
VBA tõrge 1004 - nimi on juba võetud
Viga võib ilmneda ka siis, kui proovite objekti ümber nimetada juba olemasolevaks objektiks - näiteks kui proovime Sheet1 ümber nimetada, kuid lehele antud nimi on juba teise lehe nimi.
123 | AlamnimiTööleht ()ActiveSheet.Name = "Leht2"End Sub |
Kui meil on juba leht 2, ilmneb tõrge.
VBA tõrge 1004 - objektile viitamine valesti
Viga võib ilmneda ka siis, kui olete oma koodis valesti viidanud mõnele objektile. Näiteks:
12345678 | Sub CopyRange ()Dim CopyFrom As RangeTumeda kopeerimise vahemikuksMäära CopyFrom = Vahemik ("A1: A10")Määra CopyTo = Vahemik ("C1: C10")Vahemik (CopyFrom). KopeeriVahemik (CopyTo) .PasteSpecial xlPasteValuesEnd Sub |
See annab meile taas tõrke 10004
Parandage kood ja viga enam ei kuvata.
12345678 | Sub CopyRange ()Dim CopyFrom As RangeTumeda kopeerimise vahemikuksMäära CopyFrom = Vahemik ("A1: A10")Määra CopyTo = Vahemik ("C1: C10")CopyFrom.CopyCopyTo.PasteSpecial xlPasteValuesEnd Sub |
VBA tõrge 1004 - objekti ei leitud
See tõrge võib ilmneda ka siis, kui proovime töövihikut avada ja töövihikut ei leita - sel juhul on töövihik objekt, mida ei leitud.
1234 | Avatud OpenFile ()Dim wb TöövihikunaMäära wb = Töövihikud. Ava ("C: \ Data \ TestFile.xlsx")End Sub |
Kuigi veakastis on teade erinev, on viga endiselt 1004.