Vyžaduje se objekt VBA | Jak opravit chybu požadovanou objektem v aplikaci Excel VBA?
Objekt vyžadován v aplikaci Excel VBA
Chyby jsou nedílnou součástí kódovacího jazyka, ale skutečná genialita spočívá v hledání chyby a opravě těchto chyb. Prvním krokem při opravě těchto chyb je inteligence zjištění, proč k těmto chybám dochází. Pokud zjistíte, proč tyto chyby přicházejí, je velmi snadné tyto chyby opravit, aniž byste se museli potit. Jedna taková chyba v kódování VBA je „Object Required“.
Pokud si pamatujete, když jste se učili proměnné a přiřazovali datové typy k těmto proměnným, máme také datové typy „Objekt“. Pokud je datový typ objektu přiřazen a pokud tento objekt neexistuje v listu nebo sešitu, na který odkazujeme, zobrazí se chybová zpráva VBA jako „Object Required“ . Jako nový kodér je tedy v těchto situacích běžné panikařit, protože na počáteční úrovni nemůže začátečník najít příčinu této chyby.
Proč dochází k chybě požadovaného objektu? (a ... jak to opravit?)
Dobře, je potřeba dva nebo tři příklady, abyste skutečně pochopili, proč k této chybě dochází a jak ji opravit.
Tuto šablonu požadovaného objektu VBA Excel si můžete stáhnout zde - Šablona požadovaného objektu VBA ExcelNapříklad se podívejte na níže uvedený 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
Vysvětlím vám výše uvedený kód.
Deklaroval jsem tři proměnné a první dvě proměnné odkazují na objekty „Sešit“ a „Pracovní list“. Třetí proměnná odkazuje na datový typ „Datum“.
Když jsou proměnné přiřazeny datové typy „Objekt“, musíme k přiřazení odkazu na objekt proměnné použít slovo „Nastavit“, takže v následujících dvou řádcích jsem pomocí klíčového slova „Nastavit“ přiřadil odkaz na „ThisWorkbook“ na proměnnou „Wb“, protože tato proměnná obsahuje datový typ objektu jako „Workbook“ a pro proměnnou „Ws“ jsem v tomto sešitu přiřadil objekt listu „Data“ listu.
Nastavit Wb = ThisWorkbook
Nastavit Ws = ThisWorkbook.Worksheets ("Data")
- V dalším řádku pro proměnnou datového typu „Datum“ jsem také použil klíčové slovo „Nastavit“ k přiřazení hodnoty hodnoty buňky A1 v tomto sešitu (Wb) a v listu „Data“ (Ws).
Nastavit MyToday = Wb.Ws.Cells (1, 1)
- Na dalším řádku zobrazujeme hodnotu proměnné „MyDate“ hodnoty buňky A1 v okně se zprávou ve VBA.
MsgBox MyToday
- Dobře, pojďme spustit tento kód a uvidíme, co získáme jako výsledek.
Jak vidíte výše, zobrazuje se chybová zpráva VBA jako „Object Required“ . Dobře, je čas prozkoumat, proč dostáváme tuto chybovou zprávu.
- Ve výše uvedeném obrázku chybové zprávy v sekci kódu se při zobrazení chybové zprávy zvýraznila modrá část chyby chybového kódu.
- Otázkou tedy zůstává, proč jsme dostali tuto chybu. První věc, kterou musíme vidět, je tento konkrétní datový typ proměnné. Vraťte se na předchozí řádek kódu, kde jsme přiřadili datový typ proměnné „MyDate“.
- Přiřadili jsme proměnný datový typ jako „Datum“ a nyní se nyní vracíme k chybovému řádku.
V tomto řádku jsme použili klíčové slovo „Set“, zatímco náš datový typ není datovým typem „Object“. V okamžiku, kdy kód VBA uvidí klíčové slovo „Set“, předpokládá, že jde o datový typ objektu, a říká, že vyžaduje odkaz na objekt.
Ve spodním řádku je tedy klíčové slovo „Nastavit“, které slouží pouze k odkazování na proměnné objektu, jako je pracovní list, sešit atd.…
Příklad č. 1
Nyní se podívejte na níže uvedený kód.
Kód:
Sub Object_Required_Error () Range ("A101"). Value = Application1.WorksheetFunction.Sum (Range ("A1: A100")) End Sub
Ve výše uvedeném kódu jsme použili funkci listu „SUM“ k získání součtu hodnot buněk od A1 do A100. Když spustíte tento kód, setkáme se s níže uvedenou chybou.
Jejda !! Říká „Chyba běhu '424': Objekt je vyžadován.
Pojďme se nyní podrobně podívat na kód.
Namísto použití aplikace „Application“ jsme omylem použili „aplikaci 1“, takže v kódu VBA došlo k chybě „Object Required“.
Pokud je povoleno slovo „Možnost Explicit“, zobrazí se chyba „Proměnná není definována“.
Věci k zapamatování
- Object Required znamená, že reference na datový typ objektu musí být přesná.
- Když v kódování není povoleno slovo explicitní volba, dostaneme chybu požadovaného objektu pro chybně napsaná slova proměnných a pokud je povolena volba Explicitní, dostaneme proměnnou není definována chyba pro chybně napsaná slova proměnné.