Препратка към работен лист с обектна променлива - Съвети на Excel

Съдържание

Джо се опитва да изведе грешка в нов макрос, който току-що е написал.

Редът, който присвоява NextRow, връща грешка, която казва „Променлива на обекта или с не зададена променлива на блок“.

Обектните променливи са доста готини. В старите съвети на адрес бих използвал обикновена променлива като тези:

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

Има по-добър начин. Можете да дефинирате променлива като всеки обект, например работен лист. Това има няколко предимства. По-кратко е използването на обектната променлива вместо работни листове (OrigName). Също така, докато пишете код, VBA ще знае, че променливата е работен лист и ще предложи подходящите свойства и методи, след като въведете точката. Ето новия код:

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

Номерът обаче е, че когато имате обектна променлива, тя трябва да бъде присвоена с ключовата дума Set. Ако не успеете да поставите Set в кода, ще получите малко неинтуитивната „Object Variable or With Block Variable Not Set“. Джо просто трябва да предшества заданието на променливата си с думата Set.

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