Необходим обект на VBA - Как да коригирам задължителна грешка в обект в Excel VBA?

Обект, необходим в Excel VBA

Грешките са неразделна част от езика за кодиране, но истинският гений се крие в намирането на грешката и отстраняването на тези грешки. Първата стъпка при поправянето на тези грешки е интелигентността при намирането на причините, поради които възникват тези грешки. Ако можете да разберете защо тези грешки идват, тогава е много лесна работа да ги поправите, без да се потите. Една такава грешка при кодирането на VBA е „Object Required“.

Ако си спомняте, докато изучаваме променливи и присвояваме типове данни на тези променливи, имаме и типове данни „Обект“. Когато типът на обектните данни е присвоен и ако този обект не съществува в работния лист или работната книга, към които се отнасяме, ще получим съобщението за грешка VBA като „Object Required“ Така че, като нов кодер, е обичайно да се посочва паника в тези ситуации, тъй като на начално ниво начинаещият не може да намери причината за тази грешка.

Защо възниква задължителна грешка в обекта? (и … Как да го поправя?)

Добре, необходими са два или три примера, за да разберем наистина защо възниква тази грешка и как да я поправим.

Например погледнете кода по-долу.

Код:

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

Позволете ми да ви обясня горния код за вас.

Декларирах три променливи, а първите две променливи се отнасят до обектите „Работна книга“ и „Работен лист“. Третата променлива се отнася до типа данни „Дата“.

Когато типовете данни „Object“ са присвоени на променливата, трябва да използваме думата „Set“, за да присвоим референцията на обекта към променливата, така че в следващите два реда, като използваме ключовата дума „Set“, I са присвоили препратката на „ThisWorkbook“ към променливата „Wb“, тъй като тази променлива съдържа типа на обекта като „Работна книга“, а за променливата „Ws“ съм задал обекта на работния лист на работния лист „Данни“ в тази работна книга.

Задайте Wb = ThisWorkbook
Задайте Ws = ThisWorkbook.Worksheets ("Data")
  • В следващия ред за променливата тип данни „Дата“ също използвах ключовата дума „Задаване“, за да присвоя стойността на стойността на клетка А1 в тази работна книга (Wb) и в работния лист „Данни“ (Ws).
Задайте MyToday = Wb.Ws.Cells (1, 1)
  • В следващия ред показваме стойността на стойността на променливата „MyDate“ на стойността на клетка A1 в полето за съобщения във VBA.
MsgBox MyToday
  • Добре, нека пуснем този код и да видим какво ще получим в резултат.

Както можете да видите по-горе, той показва съобщението за грешка на VBA като „Object Required“. Добре, време е да проучим защо получаваме това съобщение за грешка.

  • В горното изображение на съобщението за грешка в раздела за код, докато показва съобщението за грешка, то подчертава частта от грешката на кода със син цвят.
  • И така, остава въпросът защо имаме тази грешка. Първото нещо, което трябва да видим, е този конкретен тип данни с променлива. Върнете се към предишния ред код, където сме присвоили типа данни на променливата „MyDate“.
  • Присвоихме променливия тип данни като „Дата“ и сега се върнахме към реда за грешка сега.

В този ред използвахме ключовата дума „Set“, докато нашият тип данни не е типът „Object“. Така че в момента, в който кодът на VBA вижда ключовата дума „Set“, той приема, че е тип данни за обект и казва, че изисква препратка към обект.

И така, долният ред е „Set“. Ключовата дума се използва само за препратка към обектните променливи като Worksheet, Workbook и т.н. …

Пример # 1

Сега погледнете кода по-долу.

Код:

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

В горния код използвахме функцията на работния лист „SUM“, за да получим общата стойност на клетките от A1 до A100. Когато стартирате този код, ще срещнем грешката по-долу.

Опа !! Пише: „Грешка при изпълнение„ 424 “: Обектът е задължителен.

Сега нека разгледаме внимателно кода сега.

Вместо да използваме „Приложение“, ние погрешно използвахме „Приложение 1“, така че това срещна грешката на „Необходим обект“ в кода на VBA.

Ако думата „Option Explicit“ е разрешена, тогава ще получим грешката „Variable Not Defined“.

Неща за запомняне

  • Object Required означава, че препратката към типа данни на обекта трябва да бъде точна.
  • Когато опцията експлицитна дума не е активирана в кодирането, тогава ще получим Object Required error за грешно изписани променливи думи и ако Option Explicit е активирана, ще получим грешката, която не е дефинирана за грешно написани променливи думи.

Интересни статии...