Būtina objekto klaida „Excel VBA“ - trikčių šalinimas

Būtinų objektų klaidų apžvalga

Ši pamoka padės jums pašalinti reikiamų objekto klaidų VBA triktis.

<

<

Objektų apžvalga

VBA objektas yra „dalykas“, pvz., Darbalapis, darbaknygė, diapazonas, forma, eilutė, stulpelis, vartotojo forma, valdiklis ir kt.

Objektai turi savybių (pvz., Pavadinimas, spalva, paslėptas) ir metodus (pvz., Atidaryti, išvalyti, išsaugoti, paslėpti). Jei bandote taikyti ypatybę ar metodą, VBA reikia galiojančio objekto, kuriam būtų taikomos savybės ar metodai.

Jei nepateiksite galiojančio objekto, gausite Būtina objekto klaida.

Šis vadovas padės išspręsti reikiamų objekto klaidų trikčių šalinimą.

#1. Parinktis Aiškūs / neteisingai parašyti kintamųjų pavadinimai

Pirmiausia patikrinkite, ar neteisingai parašėte objekto pavadinimą. Neteisingai parašytas pavadinimas gali sukelti reikiamo objekto klaidą.

Tai gali atsitikti naudojant esamus objektų pavadinimus:

<>

Arba su kintamaisiais pavadinimais:

<>

Vienas geras būdas užkirsti kelią klaidingai parašytiems kintamųjų pavadinimams yra įsitikinti, kad kodo modulio viršuje nurodote „Option Explicit“.

1 Pasirinkimas aiškus

„Option Explicit“ verčia deklaruoti kintamuosius. Dabar, kai derinsite kodą <>, gausite pranešimą, kad turite apibrėžti savo kintamąjį:

<>

Tai turėtų padėti jums suprasti, kad tas kintamasis parašytas neteisingai.

VBA programavimas | Kodo generatorius jums tinka!

#2 Kintamos užduotys

Tada įsitikinkite, kad tinkamai priskyrėte kintamuosius.

Objekto kintamieji turi būti priskirti naudojant Nustatyti objektą =: <>

<>

Jei nenaudosite Nustatyti objekto kintamųjų priskyrimams, gausite klaidą Objektas būtinas.

<>

Panašiai ne objekto kintamieji turėtų būti priskirti be rinkinio:

<>

Jei bandysite naudoti nustatymą ne objekto kintamajame, gausite klaidą Objektas būtinas.

<>

#3 darbalapio lygio moduliai

Ar jūsų kodas yra darbalapio lygio modulyje? Jei taip, turėsite būti ypač atsargūs, nurodydami pavadintus diapazonus kituose darbalapiuose.

Pavyzdžiui, galite turėti darbaknygės lygio pavadintą diapazoną „Data“, įprastame kodo modulyje galite nurodyti nurodytą diapazoną taip:

1 „MsgBox“ diapazonas („Data“)

Tačiau jei nurodote nurodytą diapazoną iš darbalapio lygio modulio, turite aiškiai apibrėžti darbalapį, kuriame yra nurodytas diapazonas:

1 „MsgBox Sheets“ („Sheet2“). Diapazonas („Data“). Vertė

Priešingu atveju susidursite su klaida:

<>

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave