для чего используется оператор 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 и обратная связь.
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 (Transact-SQL)
Язык Transact-SQL предоставляет несколько инструкций SET, которые изменяют текущий сеанс, управляя специфическими данными. Инструкции SET группируются в категории, показанные в следующей таблице.
Сведения об установке локальных переменных с помощью инструкции SET см. в разделе SET @local_variable (Transact-SQL).
Категория | Операторы |
---|---|
Инструкции даты и времени | SET DATEFIRST SET DATEFORMAT |
Инструкции блокировки | SET DEADLOCK_PRIORITY SET QUOTED_IDENTIFIER |
Инструкции выполнения запросов | SET ARITHABORT SET FMTONLY SET RESULT SET CACHING (предварительная версия) SET TEXTSIZE |
Инструкции настроек ISO | SET ANSI_DEFAULTS SET ANSI_WARNINGS |
Статистические инструкции | SET FORCEPLAN SET STATISTICS TIME |
Инструкции управления транзакциями | SET IMPLICIT_TRANSACTIONSРекомендации по использованию инструкций SETВсе инструкции SET выполняются во время выполнения или запуска, кроме следующих инструкций, которые выполняются во время анализа: Если инструкция SET выполняется в хранимой процедуре или триггере, значение параметра SET восстанавливается после того, как хранимая процедура или триггер вернет управление. Также, если инструкция SET указана в динамической строке SQL, которая выполняется с помощью процедуры sp_executesql или инструкции EXECUTE, значение параметра SET восстанавливается после того, как управление вернется из пакета, указанного в динамической строке SQL. Хранимые процедуры выполняются с настройками SET, указанными во время выполнения, кроме инструкций SET ANSI_NULLS и SET QUOTED_IDENTIFIER. Хранимые процедуры, использующие инструкцию SET ANSI_NULLS или SET QUOTED_IDENTIFIER, используют настройку, указанную в хранимой процедуре во время создания. При использовании внутри хранимой процедуры любые установки SET игнорируются. Параметр user options процедуры sp_configure допускает настройку в пределах сервера и работает с множеством баз данных. Эта настройка ведет себя так же, как и явная инструкция SET, за исключением того, что возникает во время входа в систему. Настройки базы данных, устанавливаемые с помощью инструкции ALTER DATABASE, действительны только на уровне базы данных и применяются только при явном задании. Параметры базы данных переопределяют параметры экземпляра, которые устанавливаются с помощью процедуры sp_configure. Если в инструкции SET используется значение ON и OFF, можно указать любое из них для нескольких параметров SET. Это не относится к статистическим параметрам SET. Например, инструкция SET QUOTED_IDENTIFIER, ANSI_NULLS ON устанавливает параметры QUOTED_IDENTIFIER и ANSI_NULLS в значение ON. Настройки инструкции SET переопределяют идентичные настройки параметров базы данных, которые были установлены с помощью инструкции ALTER DATABASE. Например, значение, указанное в инструкции SET ANSI_NULLS, перекроет настройку базы данных для параметра ANSI_NULL. Кроме того, для некоторых настроек подключений автоматически устанавливается значение ON, если пользователь подключается к базе данных, основываясь на значениях, заданных предыдущим использованием настроек процедуры sp_configure user options, или на значениях, которые применимы ко всем подключениям ODBC и OLE/DB. Настройка SET LOCK_TIMEOUT не влияет на выполнение инструкций ALTER, CREATE и DROP DATABASE. Если инструкция SET глобальной или быстрой настройки устанавливает несколько настроек, то следующая инструкция SET быстрой настройки переопределяет предыдущие настройки для всех параметров, которых она касается. Если параметр SET, которого касается инструкция SET быстрой настройки, устанавливается после запуска такой инструкции, то индивидуальная инструкция SET переопределяет соответствующие быстрые настройки. Пример инструкции SET быстрой настройки: SET ANSI_DEFAULTS. При использовании пакетов контекст базы данных определяется пакетом, установленным с помощью инструкции USE. Незапланированные запросы и все другие инструкции, которые выполняются за пределами хранимых процедур и которые содержатся в пакетах, наследуют настройки параметров базы данных и подключения, установленные с помощью инструкции USE. Запросы режима MARS совместно используют глобальное состояние, которое содержит большую часть настроек параметров SET последней сессии. Параметры SET могут измениться при выполнении любого запроса. Эти изменения специфичны для контекста запроса, в котором они устанавливаются, и не влияют на другие параллельные запросы режима MARS. Однако после завершения выполнения запроса новые параметры SET копируются в глобальное состояние сеанса. Новые запросы, которые выполняются в том же самом сеансе, после этого изменения будут использовать новые значения параметров SET. При выполнении хранимой процедуры из пакета либо из другой хранимой процедуры она выполняется под значениями параметров, которые установлены в базе данных, содержащей хранимую процедуру. Например, если хранимая процедура db1.dbo.sp1 вызывает хранимую процедуру db2.dbo.sp2, то хранимая процедура sp1 выполняется под текущим значением уровня совместимости базы данных db1, а хранимая процедура sp2 — под текущим значением уровня совместимости базы данных db2. Когда инструкция Transact-SQL ссылается на объекты, которые размещены в многих базах данных, к ней применяется текущий контекст базы данных и текущий контекст подключения. В этом случае, если инструкция языка Transact-SQL находится в пакете, текущим контекстом соединения является база данных, определенная инструкцией USE. Если инструкция языка Transact-SQL находится в хранимой процедуре, то контекстом соединения является база данных, которая содержит хранимую процедуру. Если вы создаете индексы в вычисляемых столбцах и индексированных представлениях и управляете ими, необходимо установить для следующих параметров SET значение ON: ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING и ANSI_WARNINGS. Установите для параметра NUMERIC_ROUNDABORT значение OFF. Если обязательное значение любого из этих параметров не задано, инструкции INSERT, UPDATE, DELETE, DBCC CHECKDB и DBCC CHECKTABLE для индексированных представлений или таблиц с индексами на основе вычисляемых столбцов не смогут быть выполнены. SQL Server сформирует ошибку с указанием всех неправильно заданных параметров. Также SQL Server будет выполнять инструкции SELECT в этих таблицах или индексных представлениях, как будто индексы в вычисляемых столбцах или представлениях не существуют. Если для SET RESULT_SET_CACHING указать значение ON, будет включена функция кэширования результатов для текущего сеанса клиента. Для RESULT_SET_CACHING нельзя указать значение ON для сеанса, если на уровне базы данных указано значение OFF. Если для SET RESULT_SET_CACHING указать значение OFF, будет отключена функция кэширования результатов для текущего сеанса клиента. Для изменения этого параметра требуется членство в роли public. Область применения: Azure Synapse Analytics 2-го поколения Инструкция Set (Visual Basic)Объявляет Set процедуру свойства, используемую для присвоения значения свойству. СинтаксисКомпонентыattributelist accessmodifier value statements End 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Присваивает ссылку на объект переменной или свойству. Параметры Замечания Обычно при использовании инструкции Set для присвоения переменной ссылки на объект, не создается копия объекта для этой переменной. Вместо этого создается ссылка на объект. Несколько объектных переменных могут ссылаться на один и тот же объект. Поскольку эти переменные являются ссылками (а не его копиями) на объект, любые изменения этого объекта отражаются на всех переменных, которые ссылаются на него. Однако если в инструкции Set используется ключевое слово New, то в самом деле создается новый экземпляр этого объекта. Пример
|