Vyžaduje sa objekt VBA Ako opraviť požadovanú chybu objektu v programe Excel VBA?

Objekt požadovaný v programe Excel VBA

Chyby sú neoddeliteľnou súčasťou kódovacieho jazyka, ale skutočná genialita spočíva v nájdení chyby a jej opravení. Prvým krokom pri opravovaní týchto chýb je inteligencia zistenia, prečo k týmto chybám dochádza. Ak zistíte, prečo tieto chyby prichádzajú, je veľmi ľahké ich opraviť bez toho, aby ste sa zapotili. Jednou z takýchto chýb v kódovaní VBA je „Objekt je vyžadovaný“.

Ak si pamätáte, pri učení sa premenných a priraďovaní dátových typov k týmto premenným máme aj dátové typy „Objekt“. Keď je priradený dátový typ objektu, a ak tento objekt neexistuje v pracovnom hárku alebo zošite, na ktorý odkazujeme, dostaneme chybové hlásenie VBA ako „Objekt je vyžadovaný“. Ako nový kódovač je teda v týchto situáciách bežné prepadať panike, pretože na počiatočnej úrovni nemôže začiatočník nájsť príčinu tejto chyby.

Prečo sa vyskytuje chyba požadovaná objektom? (a … Ako to opraviť?)

Dobre, na to, aby ste pochopili, prečo k tejto chybe došlo a ako ju opraviť, sú potrebné dva alebo tri príklady.

Napríklad si pozrite nasledujúci kód.

Kód:

Sub Last_Row () Dim Wb As Workbook Dim Ws As Worksheet Dim MyToday As Date Set Wb = ThisWorkbook Set Ws = ThisWorkbook.Worksheets ("Data") Set MyToday = Wb.Ws.Cells (1, 1) MsgBox MyToday End Sub

Vysvetlím vám vyššie uvedený kód.

Deklaroval som tri premenné a prvé dve premenné odkazujú na objekty „Pracovný zošit“ a „Pracovný list“. Tretia premenná sa vzťahuje na dátový typ „Dátum“.

Keď sú premennej priradené dátové typy „Objekt“, musíme na priradenie odkazu na objekt k premennej použiť slovo „Nastaviť“, takže v nasledujúcich dvoch riadkoch pomocou kľúčového slova „Nastaviť“ priradili som odkaz na „ThisWorkbook“ k premennej „Wb“, pretože táto premenná obsahuje dátový typ objektu ako „Workbook“ a pre premennú „Ws“ som v tomto zošite priradil objekt listu „Data“ listu.

Nastaviť Wb = ThisWorkbook
Nastaviť Ws = ThisWorkbook.Worksheets ("Údaje")
  • V ďalšom riadku pre premennú dátového typu „Dátum“ som tiež použil kľúčové slovo „Nastaviť“ na priradenie hodnoty hodnoty bunky A1 v tomto zošite (Wb) a v hárku „Data“ (Ws).
Nastaviť MyToday = Wb.Ws.Cells (1, 1)
  • V nasledujúcom riadku zobrazujeme hodnotu premennej „MyDate“ hodnoty bunky A1 v poli so správou vo VBA.
MsgBox MyToday
  • Dobre, spustíme tento kód a uvidíme, čo ako výsledok dostaneme.

Ako vidíte vyššie, zobrazuje chybové hlásenie VBA ako „Objekt je vyžadovaný“. Dobre, je čas preskúmať, prečo sa nám zobrazuje toto chybové hlásenie.

  • Na vyššie uvedenom obrázku s chybovou správou v sekcii s kódom sa pri chybovom hlásení zvýraznila modrá časť chybovej časti kódu.
  • Otázkou teda zostáva, prečo sme dostali túto chybu. Prvá vec, ktorú musíme vidieť, je tento konkrétny dátový typ premennej. Vráťte sa na predchádzajúci riadok kódu, kde sme priradili dátový typ k premennej „MyDate“.
  • Priradili sme variabilný dátový typ ako „Dátum“ a teraz sa vrátime na chybový riadok.

V tomto riadku sme použili kľúčové slovo „Nastaviť“, zatiaľ čo náš dátový typ nie je dátový typ „Objekt“. V okamihu, keď kód VBA uvidí kľúčové slovo „Set“, predpokladá sa, že ide o dátový typ objektu, a hovorí, že vyžaduje odkaz na objekt.

Dolný riadok je teda „Nastaviť“ - kľúčové slovo sa používa iba na odkazovanie na premenné objektov, ako napríklad pracovný hárok, pracovný zošit atď.…

Príklad č

Teraz sa pozrite na nižšie uvedený kód.

Kód:

Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub

Vo vyššie uvedenom kóde sme použili funkciu pracovného hárka „SUM“ na získanie súčtu hodnôt buniek od A1 do A100. Keď spustíte tento kód, stretneme sa s nasledujúcou chybou.

Ups !! Píše sa tam „Chyba behu„ 424 “: objekt je vyžadovaný.

Teraz sa teraz bližšie pozrieme na kód.

Namiesto použitia aplikácie „Application“ sme omylom použili aplikáciu „Application1“, takže v kóde VBA došlo k chybe „Object Required“.

Ak je povolené slovo „Explicitná možnosť“, zobrazí sa chyba „Premenná nie je definovaná“.

Na čo treba pamätať

  • Object Required znamená, že referencia na dátový typ objektu musí byť presná.
  • Keď v kódovaní nie je povolené slovo explicitné, potom dostaneme chybu vyžadovanú objektom pre chybne napísané slová premenných a ak je povolená voľba Explicit, dostaneme premennú neurčenú chybu pre nesprávne napísané slová.

Zaujímavé články...