Команда set vba excel
нет причин использовать set если не ссылаться на ссылку на объект. Хорошая практика-использовать его только в этом контексте. Для всех других простых типов данных просто используйте оператор присваивания. Это хорошая идея dim (размерность) все переменные, однако:
примерами простых типов данных будут integer , long , boolean , string . Это просто типы данных и не имеют собственных методов и свойств.
пример object будет Range , a Worksheet или Workbook . Они имеют свои собственные методы и свойства.
если вы пытаетесь использовать последнюю строку без Set , VB выдаст ошибку. Теперь, когда у вас есть object заявили, Вы можете получить доступ к его свойствам и методам.
однако, я не думаю, что это то, о чем вы действительно просите.
я думаю, что приведенный ниже код иллюстрирует то, что вы действительно спрашиваете. Предположим, мы не объявляем тип и пусть r быть тип.
Итак, давайте разбей то, что здесь происходит.
r объявляется как вариант
r установлен до Range содержащая ячейка "A1"
r установлен до стоимостью на свойство по умолчанию of Range("A1") .
в этом случае свойством диапазона по умолчанию является .Value , так что следующие две строки кода эквивалентны.
дополнительные сведения о свойствах объекта по умолчанию см. В разделе чип Пирсон "член класса по умолчанию".
что касается вашего Set пример:
в других случаях я использую
это не сработало бы без предварительного объявления этого r это Range или
Dim: вы определяете переменную (здесь: r-переменная диапазона типов)
Set: вы устанавливаете свойство (здесь: установите значение r в диапазон ("A1") - это не тип, а значение).
вы должны использовать set с объектами, если r был простым типом (например, int, string), то вы просто напишете:
Dim просто объявляет значение и тип.
Set присваивает значение переменной.
Если переменная определена как объект, например, Dim myfldr как папка, ей присваивается значение с помощью ключевого слова "Set".
Dim является коротким для измерения и используется в VBA и VB6 для объявления локальных переменных.
Set с другой стороны, не имеет ничего общего с объявлениями переменных. The Set ключевое слово используется для назначение переменная объекта для нового объекта.
надеюсь, что проясняет разницу для вас.
в соответствии с инструкцией VBA help on SET он устанавливает ссылку на объект.поэтому, если вы измените свойство, фактический объект также изменится.
«Set» - это ключевое слово, используемое в программировании VBA для назначения ссылки на объект или диапазон ячеек, который останется неизменным во всей программе или коде в Excel. VBA Set в основном помогает нам избежать повторного ввода диапазона, который мы должны выбрать при выполнении кода. В Excel «Набор» в основном применяется к рабочим листам / диапазону ячеек на определенном листе.
Синтаксис:
Установить имя объекта / переменную = объект / диапазон
Примечание. Вам необходимо иметь вкладку «Разработчик» на листе Excel.
Если вы не видите вкладку «Разработчик» в Excel, выполните следующие действия:
Шаг 1: Нажмите на опцию файла .
Шаг 2: появляется выпадающий список, нажмите на вкладку « Параметры ».
Шаг 3: После того, как вы нажмете «Параметры», появится диалоговое окно, как показано ниже, и выберите параметр « Настроить ленту» .
Шаг 4: Когда мы перетаскиваем параметры настройки ленты, мы находим параметр для разработчика, нам нужно установить этот флажок, который позволит нам использовать VBA в Excel.
Как использовать набор ключевых слов в VBA?
Ниже приведены различные примеры использования ключевого слова set в Excel VBA.
Вы можете скачать этот шаблон VBA Set Excel здесь - VBA Set Excel Template
Мы возьмем простой пример ключевого слова 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 и т. Д.
Код:
Здесь «Rnst» - имя переменной и присваивает (As) ее как функцию Range. Это предупредит систему о том, что будет сделан выбор диапазона.
Шаг 4: Затем введите ключевое слово «Set» и укажите диапазон, используя формат: Set variable = Range («range of cell») .
Код:
Шаг 5: Мы должны выбрать указанный диапазон строк. Следовательно, введите select как Rnst.Select См. Скриншот ниже:
Код:
Шаг 6: Запустите код, нажав F5 или кнопку Run, и посмотрите результат.
Он выберет указанный диапазон от ячеек A2 до A11.
Набор Excel VBA - Пример № 2
Предположим, мы хотим вставить эти ячейки или расположить их в другой ячейке. Мы будем использовать тот же код, что и выше, и добавим код для вставки этих данных в несколько столбцов.
Выполните следующие шаги:
Шаг 1: Теперь мы скопируем диапазон ячеек, который является столбцом имени. Введите copy, т.е. «Rnst.Copy», когда вы набираете «Rnst.», Появляется своего рода выпадающий список. Он содержит различные функции, такие как копирование, вставка и т. Д.
Шаг 2: Вы можете прокрутить вниз и выбрать желаемую функцию, которую хотите выполнить. Здесь просто введите «Копировать», как показано на скриншоте ниже:
Код:
Шаг 3: Скомпилируйте код, нажав клавишу F8.
Выполнив эту функцию копирования, вы увидите, что в Excel диапазон копируется, и вокруг диапазона ячеек появляются пунктирные линии, как показано ниже:
Шаг 4: Теперь нам нужно вставить эти ячейки, скажем, в соседние столбцы один за другим, поэтому нам нужно использовать функцию цикла «For» и предположить, что нам нужно вставить 5 раз, поэтому мы напечатаем ее, как показано ниже:
Для целых чисел i = от 1 до 5 -> это указывает, сколько раз нам нужно вставить данные. Если 5, то от 1 до 5, в зависимости от того, что вы считаете предпочтительным.
Код:
Шаг 5: Выберите ячейку, в которую вы хотите вставить этот диапазон ячеек. Предположим, что мы хотим начать вставку из столбца B2, а затем вставка данных должна быть динамической, то есть она должна автоматически выбирать соседние столбцы один за другим, не перекрывая друг друга. Следовательно, синтаксис будет «Ячейка (номер строки, номер столбца) .PasteSpecial».
Ячейки (2, i + 1) .PasteSpecial, Здесь 2-> представляет номер строки, а i + 1 -> представляет номер столбца. i + 1 означает, что первое значение I, объявленное в цикле «For», равно i = 1, следовательно, значение столбца станет 2, оно указывает, что оно начинает вставляться из столбца B. И по мере увеличения значения i оно будет продолжать выбирать соседние столбцы. по одному.
Код:
Шаг 6. Введите « Next i », что означает, что вы увеличиваете значение «i» по одному, чтобы вставка столбца оставалась динамичной.
Код:
Шаг 7: Нажмите «F8», чтобы строка за строкой выполняла код и покажет вам вставку ячейки в соседние столбцы один за другим.
Здесь вы можете увидеть значение i, равное 1, и данные были вставлены в столбец B по желанию.
Шаг 8: Теперь, когда вы снова нажмете «F8», вы увидите, что теперь значение i равно 2. Следовательно, 2 + 1 станет 3, и данные будут вставлены в ячейку (2, 3), то есть значение строки такое же, но столбец номер меняется, как показано на скриншоте ниже:
После того, как повторение цикла завершится, вы увидите, что данные вставлены 5 раз, то есть с счетчика 1 до 5, начинающего вставку из столбца B в столбец F, как показано ниже:
Набор Excel VBA - Пример № 3
Также мы запустим код этого примера на новом листе. Следовательно, добавьте новый лист, и в окне VBA он будет выглядеть так:
Мы должны будем вставить опцию командной кнопки. Это особенность Excel, поэтому выполните следующие действия:
Шаг 1: Введите имя подмножества, скажем «Setcount ()», как показано на скриншоте ниже:
Код:
Шаг 2: Объявите ту же переменную «Rnct», что и диапазон в подмножестве, как показано на скриншоте ниже:
Код:
Шаг 3: Затем введите ключевое слово «Set» и укажите диапазон.
Код:
Шаг 4: Теперь, после исправления диапазона, нам нужно увидеть всплывающее окно или диалоговое окно, показывающее количество ячеек в диапазоне. Следовательно, используйте функцию «MsgBox», которая при выполнении подсчета появится в диалоговом окне. Введите «MsgBox переменная name.count». В момент, после ввода имени переменной, затем точка (.) Появляется выпадающий список с различными функциями, и мы выбираем «count» или вручную набираем «count».
Введите «MsgBox Rnct.count» и после выполнения появится счетчик.
Нажмите «Вставить» на вкладке «Разработчик», как показано в красном поле, и вы увидите раскрывающийся список категории «Элементы управления формой». Нажмите на самую первую прямоугольную прямоугольную форму, которую нам нужно будет нарисовать вручную и вставить в лист Excel:
Шаг 6: Нажав на прямоугольник, нарисуйте и вставьте блок в лист, и как только вы начнете рисовать, появится диалоговое окно, как показано ниже. Это кнопка окна «Назначить макрос» и выберите макрос подмножества «Setcount». Нажмите «ОК».
Это означает, что мы назначили макрос для этой кнопки. И по щелчку, он будет выполнен.
Шаг 7: Появится, как показано ниже в Excel.
Шаг 8: Щелкните по нему правой кнопкой мыши и переименуйте его, используя опцию « Редактировать текст », как показано ниже:
Шаг 9: Дайте ему имя как «COUNT», и вы увидите его в Excel, как показано ниже.
Как мы видим, есть 10 имен и показали правильное число в диапазоне от А2 до А11.
То, что нужно запомнить
- Убедитесь, что у вас есть вкладка «Разработчик», вставленная в ленты Excel для запуска этих кодов VBA.
- «Набор» в основном применяется к рабочим листам / диапазону ячеек на определенном листе.
Рекомендуемые статьи
Это руководство по VBA Set. Здесь мы обсудим, как назначить ссылку на объект или диапазон ячеек, используя Excel VBA Set Keyword вместе с практическими примерами и загружаемым шаблоном Excel. Ниже приведены несколько полезных статей о Excel, связанных с VBA.
Объявляет Set процедуру свойства, используемую для присвоения значения свойству.
Синтаксис
Компоненты
attributelist
Необязательный элемент. См. список атрибутов.
accessmodifier
Необязательно для одного из Get Set операторов и в этом свойстве. Может применяться один из перечисленных ниже типов.
value
Обязательный элемент. Параметр, содержащий новое значение свойства.
datatype
Обязательный Option Strict , если имеет значение On . Тип данных value параметра. Указанный тип данных должен совпадать с типом данных свойства, в котором Set объявлен этот оператор.
statements
Необязательный элемент. Одна или несколько инструкций, выполняемых при Set вызове процедуры свойства.
End Set
Обязательный элемент. Завершает определение Set процедуры свойства.
Комментарии
Каждое свойство должно иметь Set процедуру свойства, если только свойство не помечено как ReadOnly . Set Процедура используется для задания значения свойства.
Visual Basic автоматически вызывает процедуру свойства, Set когда оператор присваивания предоставляет значение, которое должно храниться в свойстве.
Visual Basic передает параметр в Set процедуру во время назначения свойств. Если параметр для не указан Set , в интегрированной среде разработки (IDE) используется неявный параметр с именем value . Параметр содержит значение, присваиваемое свойству. Обычно это значение сохраняется в закрытой локальной переменной и возвращается при каждом Get вызове процедуры.
Текст объявления свойства может содержать только Get процедуры свойства и Set между оператором Property и End Property оператором. Он не может хранить ничего, Кроме этих процедур. В частности, он не может хранить текущее значение свойства. Это значение необходимо хранить за пределами свойства, так как при хранении в любой из процедур свойств другая процедура свойства не может получить к ней доступ. Обычным подходом является сохранение значения в закрытой переменной, объявленной на том же уровне, что и свойство. Необходимо определить Set процедуру внутри свойства, к которому она применяется.
Set Процедура по умолчанию имеет уровень доступа содержащего его свойства, если только не используется accessmodifier в Set инструкции.
Правила
Уровни смешанного доступа. При определении свойства для чтения и записи можно дополнительно указать другой уровень доступа для Get Set процедуры или, но не для обоих. В этом случае уровень доступа процедуры должен быть более четким, чем уровень доступа свойства. Например, если свойство объявлено Friend , можно объявить Set процедуру Private , но не Public .
При определении WriteOnly свойства Set процедура представляет все свойство. Нельзя объявить другой уровень доступа для Set , так как для свойства будет задано два уровня доступа.
Поведение
Возврат из процедуры свойства. Когда Set процедура возвращается в вызывающий код, выполнение продолжится после оператора, который предоставил значение для сохранения.
Set процедуры свойств могут возвращать использование либо оператора return , либо оператора Exit.
Exit Property Операторы и Return вызывают немедленный выход из процедуры свойства. Любое количество Exit Property инструкций и Return может использоваться в любом месте процедуры, и можно смешивать Exit Property Return операторы и.
Пример
В следующем примере инструкция используется Set для задания значения свойства.
Присваивает ссылку на объект переменной или свойству.
Параметры
объектнаяПеременная
Обязательный. Имя переменной или свойства, удовлетворяющее стандартным правилам именования переменных.
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.
Читайте также: