Set в vba что это
Set в vba что это
Присваивает ссылку на объект переменной или свойству.
Параметры
объектнаяПеременная
Обязательный. Имя переменной или свойства, удовлетворяющее стандартным правилам именования переменных.
New
Необязательный. Ключевое слово New обычно используется при описании, чтобы включить возможность неявного создания нового экземпляра объекта. Ключевое слово New в инструкции Set задает создание нового экземпляра класса. Если объектнаяПеременная содержит ссылку на объект, эта ссылка освобождается при новом присвоении. Не допускается использование ключевого слова New для создания новых экземпляров любого внутреннего типа данных и для создания зависимых объектов.
объектноеВыражение
Обязательный. Выражение, состоящее из имени объекта, другой описанной переменной того же объектного типа или функции или метода, которые возвращают объект того же объектного типа.
Nothing
Необязательный. Разрывает связь объектнойПеременной с каким-либо определенным объектом. При этом объектнаяПеременная получает значение Nothing, освобождающее все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка, если никакие другие переменные также не содержат на него ссылок.
Замечания
ОбъектнаяПеременная должна иметь объектный тип, соответствующий объекту, который будет ей присвоен.
Инструкции Dim, Private, Public, ReDim и Static описывают только переменную, которая ссылается на объект. Ссылка на реальный объект не возникает до присвоения определенного объекта в инструкции Set.
В следующем примере показано, как инструкция Dim используется для описания массива с типом Form1. Реально не существует ни одного экземпляра объекта Form1. Затем с помощью инструкции Set ссылка на новый экземпляр объекта Form1 присваивается переменной myChildForms. Такая программа позволяет создать дочерние формы в многооконном приложении (MDI).
Обычно при использовании инструкции Set для присвоения переменной ссылки на объект, не создается копия объекта для этой переменной. Вместо этого создается ссылка на объект. Несколько объектных переменных могут ссылаться на один и тот же объект. Поскольку эти переменные являются ссылками (а не его копиями) на объект, любые изменения этого объекта отражаются на всех переменных, которые ссылаются на него. Однако если в инструкции Set используется ключевое слово New, то в самом деле создается новый экземпляр этого объекта.
Пример
В данном примере инструкция Set используется для присвоения переменным ссылок на объект. Предполагается, что YourObject является допустимым объектом, обладающим свойством Text.
Set statement
Assigns an object reference to a variable or property.
Syntax
Setobjectvar = <[ New ] objectexpression | Nothing >
The Set statement syntax has these parts:
Part | Description |
---|---|
objectvar | Required. Name of the variable or property; follows standard variable naming conventions. |
New | Optional. New is usually used during declaration to enable implicit object creation. When New is used with Set, it creates a new instance of the class. If objectvar contained a reference to an object, that reference is released when the new one is assigned. The New keyword can’t be used to create new instances of any intrinsic data type and can’t be used to create dependent objects. |
objectexpression | Required. Expression consisting of the name of an object, another declared variable of the same object type, or a function or method that returns an object of the same object type. |
Nothing | Optional. Discontinues association of objectvar with any specific object. Assigning Nothing to objectvar releases all the system and memory resources associated with the previously referenced object when no other variable refers to it. |
Remarks
To be valid, objectvar must be an object type consistent with the object being assigned to it.
The Dim, Private, Public, ReDim, and Static statements only declare a variable that refers to an object. No actual object is referred to until you use the Set statement to assign a specific object.
Generally, when you use Set to assign an object reference to a variable, no copy of the object is created for that variable. Instead, a reference to the object is created. More than one object variable can refer to the same object. Because such variables are references to the object rather than copies of the object, any change in the object is reflected in all variables that refer to it. However, when you use the New keyword in the Set statement, you are actually creating an instance of the object.
Example
This example uses the Set statement to assign object references to variables. YourObject is assumed to be a valid object with a Text property.
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
VBA Set
Excel VBA Set
Синтаксис:
Установить имя объекта / переменную = объект / диапазон
Примечание. Вам необходимо иметь вкладку «Разработчик» на листе Excel.
Если вы не видите вкладку «Разработчик» в Excel, выполните следующие действия:
Шаг 2: появляется выпадающий список, нажмите на вкладку « Параметры ».
Шаг 4: Когда мы перетаскиваем параметры настройки ленты, мы находим параметр для разработчика, нам нужно установить этот флажок, который позволит нам использовать VBA в Excel.
Как использовать набор ключевых слов в VBA?
Ниже приведены различные примеры использования ключевого слова set в Excel VBA.
Мы возьмем простой пример ключевого слова Set в Excel VBA. Предположим, мы хотели бы выбрать диапазон и установить его в качестве фиксированного диапазона, чтобы избежать повторения. Ниже приведен диапазон ячеек, содержащий имена:
Чтобы использовать ключевое слово set в Excel VBA, выполните следующие действия:
Шаг 1: Перейдите на вкладку «Разработчик», а затем нажмите на «Visual Basic» с левой стороны (первая опция), как показано ниже.
Как только вы нажмете на него, появится новое окно, как показано ниже:
Вы заметите, что он содержит две вкладки с левой стороны, «Лист1 (Лист1)» и «ThisWorkbook». Единственное отличие состоит в «Sheet1», когда вы хотите выполнить код только для этого конкретного листа, а в «ThisWorkbook» мы можем написать код и выполнить его, который можно применить ко всей книге Excel.
Шаг 2: Дважды щелкните «Лист1 (Лист1)», и вы увидите пустой экран, на котором нам нужно написать код. Сначала объявите подмножество как Sub name и нажмите Enter, и вы увидите подмножество, созданное, как показано ниже:
Это способ, которым мы создаем подмножество, и автоматически появляется «End Sub». Это по умолчанию особенность Excel. Если «End Sub» не появляется, код не будет выполнен и выдаст ошибку.
Шаг 3: Теперь мы объявим переменные, которые будут использоваться в коде.
Введите Dim имя переменной и тип переменной. Здесь имя будет похоже на идентификатор диапазона, а тип будет таким, как Integer, Long, String, Range и т. Д.
Шаг 5: Мы должны выбрать указанный диапазон строк. Следовательно, введите select как Rnst.Select См. Скриншот ниже:
Шаг 6: Запустите код, нажав F5 или кнопку Run, и посмотрите результат.
Он выберет указанный диапазон от ячеек A2 до A11.
Предположим, мы хотим вставить эти ячейки или расположить их в другой ячейке. Мы будем использовать тот же код, что и выше, и добавим код для вставки этих данных в несколько столбцов.
Выполните следующие шаги:
Шаг 1: Теперь мы скопируем диапазон ячеек, который является столбцом имени. Введите copy, т.е. «Rnst.Copy», когда вы набираете «Rnst.», Появляется своего рода выпадающий список. Он содержит различные функции, такие как копирование, вставка и т. Д.
Шаг 2: Вы можете прокрутить вниз и выбрать желаемую функцию, которую хотите выполнить. Здесь просто введите «Копировать», как показано на скриншоте ниже:
Шаг 3: Скомпилируйте код, нажав клавишу F8.
Выполнив эту функцию копирования, вы увидите, что в Excel диапазон копируется, и вокруг диапазона ячеек появляются пунктирные линии, как показано ниже:
Шаг 4: Теперь нам нужно вставить эти ячейки, скажем, в соседние столбцы один за другим, поэтому нам нужно использовать функцию цикла «For» и предположить, что нам нужно вставить 5 раз, поэтому мы напечатаем ее, как показано ниже:
Шаг 6. Введите « Next i », что означает, что вы увеличиваете значение «i» по одному, чтобы вставка столбца оставалась динамичной.
Шаг 7: Нажмите «F8», чтобы строка за строкой выполняла код и покажет вам вставку ячейки в соседние столбцы один за другим.
Здесь вы можете увидеть значение i, равное 1, и данные были вставлены в столбец B по желанию.
Шаг 8: Теперь, когда вы снова нажмете «F8», вы увидите, что теперь значение i равно 2. Следовательно, 2 + 1 станет 3, и данные будут вставлены в ячейку (2, 3), то есть значение строки такое же, но столбец номер меняется, как показано на скриншоте ниже:
После того, как повторение цикла завершится, вы увидите, что данные вставлены 5 раз, то есть с счетчика 1 до 5, начинающего вставку из столбца B в столбец F, как показано ниже:
Предположим, мы хотели бы показать количество ячеек в этом диапазоне в окне сообщения, появляющемся при нажатии кнопки. Мы возьмем те же данные, как показано ниже.
Также мы запустим код этого примера на новом листе. Следовательно, добавьте новый лист, и в окне VBA он будет выглядеть так:
Мы должны будем вставить опцию командной кнопки. Это особенность Excel, поэтому выполните следующие действия:
Шаг 1: Введите имя подмножества, скажем «Setcount ()», как показано на скриншоте ниже:
Шаг 2: Объявите ту же переменную «Rnct», что и диапазон в подмножестве, как показано на скриншоте ниже:
Шаг 3: Затем введите ключевое слово «Set» и укажите диапазон.
Шаг 4: Теперь, после исправления диапазона, нам нужно увидеть всплывающее окно или диалоговое окно, показывающее количество ячеек в диапазоне. Следовательно, используйте функцию «MsgBox», которая при выполнении подсчета появится в диалоговом окне. Введите «MsgBox переменная name.count». В момент, после ввода имени переменной, затем точка (.) Появляется выпадающий список с различными функциями, и мы выбираем «count» или вручную набираем «count».
Введите «MsgBox Rnct.count» и после выполнения появится счетчик.
Шаг 5: Теперь мы хотим вставить командную кнопку, и при нажатии на эту кнопку должно появиться окно сообщения.
Нажмите «Вставить» на вкладке «Разработчик», как показано в красном поле, и вы увидите раскрывающийся список категории «Элементы управления формой». Нажмите на самую первую прямоугольную прямоугольную форму, которую нам нужно будет нарисовать вручную и вставить в лист Excel:
Шаг 6: Нажав на прямоугольник, нарисуйте и вставьте блок в лист, и как только вы начнете рисовать, появится диалоговое окно, как показано ниже. Это кнопка окна «Назначить макрос» и выберите макрос подмножества «Setcount». Нажмите «ОК».
Это означает, что мы назначили макрос для этой кнопки. И по щелчку, он будет выполнен.
Шаг 7: Появится, как показано ниже в Excel.
Шаг 8: Щелкните по нему правой кнопкой мыши и переименуйте его, используя опцию « Редактировать текст », как показано ниже:
Шаг 9: Дайте ему имя как «COUNT», и вы увидите его в Excel, как показано ниже.
Шаг 10: Затем нажмите кнопку «COUNT». После нажатия кнопки «COUNT» появится окно сообщения, как показано ниже:
Как мы видим, есть 10 имен и показали правильное число в диапазоне от А2 до А11.
То, что нужно запомнить
Рекомендуемые статьи
Это руководство по VBA Set. Здесь мы обсудим, как назначить ссылку на объект или диапазон ячеек, используя Excel VBA Set Keyword вместе с практическими примерами и загружаемым шаблоном Excel. Ниже приведены несколько полезных статей о Excel, связанных с VBA.
Инструкция Set (Visual Basic)
Объявляет Set процедуру свойства, используемую для присвоения значения свойству.
Синтаксис
Компоненты
attributelist
Необязательный элемент. См. список атрибутов.
accessmodifier
Необязательно для одного из Get Set операторов и в этом свойстве. Может применяться один из перечисленных ниже типов.
value
Обязательный элемент. Параметр, содержащий новое значение свойства.
statements
Необязательный элемент. Одна или несколько инструкций, выполняемых при Set вызове процедуры свойства.
End Set
Обязательный элемент. Завершает определение Set процедуры свойства.
Комментарии
Visual Basic автоматически вызывает процедуру свойства, Set когда оператор присваивания предоставляет значение, которое должно храниться в свойстве.
Текст объявления свойства может содержать только Get процедуры свойства и Set между оператором Property и End Property оператором. Он не может хранить ничего, Кроме этих процедур. В частности, он не может хранить текущее значение свойства. Это значение необходимо хранить за пределами свойства, так как при хранении в любой из процедур свойств другая процедура свойства не может получить к ней доступ. Обычным подходом является сохранение значения в закрытой переменной, объявленной на том же уровне, что и свойство. Необходимо определить Set процедуру внутри свойства, к которому она применяется.
Set Процедура по умолчанию имеет уровень доступа содержащего его свойства, если только не используется accessmodifier в Set инструкции.
Правила
Поведение
Возврат из процедуры свойства. Когда Set процедура возвращается в вызывающий код, выполнение продолжится после оператора, который предоставил значение для сохранения.
Exit Property Операторы и Return вызывают немедленный выход из процедуры свойства. Любое количество Exit Property инструкций и Return может использоваться в любом месте процедуры, и можно смешивать Exit Property Return операторы и.
Пример
В следующем примере инструкция используется Set для задания значения свойства.
Оператор Set
Назначает ссылку на объект переменной или свойству.
Синтаксис
Setobjectvar = <[ New ] objectexpression | Nothing >
Синтаксис оператора Set состоит из следующих элементов.
Part | Описание |
---|---|
objectvar | Обязательный. Имя переменной или свойства; соответствует стандартным соглашениям об именовании переменных. |
New | Необязательное. New обычно используется во время объявления разрешения создания неявных объектов. Когда New используется с Set, он создает новый экземпляр класса. Если objectvar содержал ссылку на объект, эта ссылка освобождается, когда назначается новая. Новое ключевое слово не может использоваться для создания новых экземпляров любого типа внутренних данных и не может использоваться для создания зависимых объектов. |
objectexpression | Обязательный. Выражение, состоящее из имени объекта, другой объявленной переменной того же типа объекта или функции, или метода, которые возвращают объект того же типа объекта. |
Nothing | Необязательное. Прекращает связь objectvar с любым определенным объектом. Назначение Nothing для objectvar освобождает все ресурсы системы и памяти, связанные с ранее упоминаемого объекта, если на него не ссылается другая переменная. |
Примечания
Чтобы элемент objectvar был допустимым, он должен представлять собой тип объекта, согласующийся с назначаемым ему объектом.
Операторы Dim, Private, Public, ReDim и Static только объявляют переменную, которая ссылается на объект. Ссылка на фактический объект не задается, до тех пор пока оператор Set используется для назначения определенного объекта.
Обычно, когда используется Set для назначения переменной ссылки на объект, для этой переменной не создается копия объекта. Вместо этого создается ссылка на объект. Несколько объектных переменных могут ссылаться на один и тот же объект. Поскольку такие переменные являются, скорее, ссылками на объект, чем копиями объекта, любое изменение в объекте отражается во всех переменных, которые на него ссылаются. Однако, когда ключевое слово New используется в операторе Set, фактически создается экземпляр объекта.
Пример
В этом примере используется оператор Set, чтобы назначить переменным ссылки на объекты. Предполагается, что YourObject представляет собой допустимый объект со свойством Text.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.