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á.