VBA 1004 klaida (6 populiariausi tipai) | Kaip ištaisyti vykdymo klaidą 1004 VBA?
VBA 1004 klaida yra vykdymo laiko klaida VBA, kuri taip pat žinoma kaip programos apibrėžta arba objekto apibrėžta klaida, ir kodėl taip yra todėl, kad „Excel“ programoje turime ribotą stulpelių skaičių ir kai mūsų kodas duoda komandą išeiti už diapazono ribų, gauname 1004 klaida, yra ir kitų atvejų, kai gauname šią klaidą, kai nurodome diapazoną, kurio lape nėra.
„Excel“ VBA klaida 1004
VBA 1004 klaida yra VBA vykdymo laiko klaida, atsirandanti vykdant kodą. Klaidos yra neatsiejama kodavimo dalis, ypač kai rašote pirmą kartą, galite aptikti daug klaidų VBA. Tai būdinga visiems ir nėra didelio reikalo.
Tačiau jei norite žinoti klaidą, kodėl ji ateina, ateityje išvengsite šių klaidų.
Šiame straipsnyje aptarsime vieną iš svarbių „Excel“ klaidų „VBA 1004 klaida“.
6 populiariausios „Excel VBA 1004“ vykdymo laiko klaidos
Šią VBA 1004 klaidos šabloną galite atsisiųsti čia - VBA 1004 klaidos šablonas# 1 - VBA vykdymo laiko klaida 1004: šis vardas jau užimtas. Išbandykite kitą:
Ši klaida įvyksta pervadinant lapą.
Jei darbalapio pavadinimas jau yra ir jei bandote tą patį pavadinimą priskirti kitam lapui, VBA išmeta 1004 vykdymo laiko klaidą, nurodydama „Vardas jau paimtas. Išbandykite kitą “
Pavyzdžiui, žiūrėkite žemiau esantį kodą.
Kodas:
Klaidos klaida1004_Example () darbalapiai („Sheet2“). Pavadinimas = „Sheet1“ Pabaiga Sub
Bandau pervadinti 2 lapą kaip 1 lapą. Bet aš jau turiu lapą pavadinimu „Sheet1“.
Jei paleisiu šį kodą naudodamas F5 klavišą arba rankiniu būdu, gausiu vykdymo laiko klaidą 1004: tas vardas jau paimtas. Išbandykite kitą
Taigi, pabandykite atitinkamai pervadinti lapą.
Nr. 2 - VBA vykdymo laiko klaida 1004: nepavyko objekto „_ Global“ metodo „Range“:
Tai dažniausiai įvyksta tada, kai bandome prieiti prie įvardyto diapazono „Excel“ su rašybos klaida arba to visai nėra jūsų nurodytame darbalapyje.
Tam aš pavadinau langelių diapazoną kaip „Antraštės“, kaip parodyta žemiau esančiame paveikslėlyje.
Dabar naudodamas „Range“ objektą, aš galiu pasiekti šį diapazoną.
Kodas:
Sub klaidos1004_Example () diapazonas („Antraštės“). Pasirinkite Baigti antrinę dalį
Jei paleisite šį kodą paspausdami klavišą F5, šis kodas pasirinks pavadintą diapazoną.
Bet jei neteisingai paminėsiu pavadintą diapazoną, gausiu vykdymo laiko klaidą 1004: Objekto „_ Global“ metodas „Range“ nepavyko
Kodas:
Sub klaidos1004_Example () diapazonas („Headngs“). Pasirinkite End Sub
Paleiskite šį kodą rankiniu būdu arba naudodami klavišą F5 ir pamatykite rezultatą.
# 3 - VBA vykdymo laiko klaida 1004: nepavyko pasirinkti diapazono klasės metodo:
Dažniausiai tai atsitinka, kai bandome pasirinkti langelius, išskyrus aktyvųjį lapą, nedarant lapo pasirinkto ar aktyvaus.
Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.
Kodas:
Klaidos klaida1004_Example () darbalapiai („Sheet1“). Diapazonas („A1: A5“). Pasirinkite End Sub
Aukščiau pateiktas kodas sako, kad reikia pasirinkti langelius nuo A1 iki A5 darbalapyje „Sheet1“. Norėdami eksperimentuoti, mano dabartinis aktyvus lapas yra „Sheet2“, o ne „Sheet1“.
Aš paleisiu šį kodą naudodamas F5 klavišą arba rankiniu būdu, kad sužinotumėte, kas vyksta.
Gavome vykdymo laiko klaidą 1004: Pasirinkti diapazono klasės metodą nepavyko. Taip yra todėl, kad nesuaktyvinę lapo bandome pasirinkti to lapo langelius. Taigi, prieš pasirinkdami langelius, pirmiausia turime suaktyvinti vien tai. Žemiau yra teisingas kodas.
# 4 - nepavyko atidaryti objekto darbaknygių VBA vykdymo klaidos 1004 metodo:
Tai dažniausiai įvyksta, kai bandote atidaryti darbaknygę, kurios pavadinimas yra tas pats, kaip kitos jau atidarytos darbaknygės.
Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.
Kodas:
Klaidos klaida1004_Example () Dim wb as Workbook Set wb = Workbooks.Open ("\\ FileName.xls", ReadOnly: = True, CorruptLoad: = xlExtractData) Pabaiga
Tai sukels žemiau pateiktą klaidą.
# 5 - VBA vykdymo klaidos 1004 metodas Deja, nepavyko rasti:
Ši klaida atsiranda dėl to, kad bandant atidaryti failą, kurio nėra minėtame kelyje, jį galima perkelti, pervadinti arba ištrinti iš minimo kelio. Viena iš to priežasčių yra neteisingas kelio ar failo pavadinimo tipas su „Excel“ plėtiniu.
Dabar pažvelkite į žemiau esantį kodą.
Kodas:
Klaidos klaidos1004_Example () darbaknygės. Atidarykite failo pavadinimą: = "E: \ Excel Files \ Infographics \ ABC.xlsx" Pabaiga
Šis kodas nurodo atidaryti failą „ABC.xlsx“ minėtame aplanko kelyje.
Tikrai žinau, kad minėtame aplanko kelyje nėra failo. Kai minėtame aplanke nėra failo, gausime vykdymo laiko klaidos 1004 metodą, deja, nepavyko rasti.
# 6 - VBA vykdymo klaida 1004 nepavyko suaktyvinti metodų diapazono klasės:
Ši klaida įvyksta daugiausia dėl to, kad suaktyvinamas langelių diapazonas, neaktyvinant darbalapio.
Pavyzdžiui, pažvelkite į žemiau pateiktą kodą.
Kodas:
Klaidos klaida1004_Example () darbalapiai („Sheet1“). Diapazonas („A1: A5“). Suaktyvinkite „End Sub“
Ši klaida yra labai panaši į tą, kurią matėme vykdymo laiko klaidoje 1004: Pasirinkti diapazono klasės metodą nepavyko.
Jei paleisiu rankiniu būdu arba naudodamas F5 klavišą, gausime žemiau klaidą.
Nes neįjungę lapo negalime suaktyvinti jame esančių ląstelių. Taigi pirmiausia suaktyvinkite lapą, tada suaktyvinkite to lapo langelius.