VBA Set Statemment | Как да присвоите стойности на обектни променливи?

Изявление за набор от Excel VBA

VBA Set е израз, който се използва за присвояване на всеки ключ за стойност казва обект или препратка към променлива, ние използваме тази функция, за да дефинираме параметъра за определена променлива, например, ако напишем Set M = A, което означава сега M reference има същите стойности и атрибути, подобни на това, което има A.

Във VBA обектът е ядро ​​на Excel, защото без обекти не можем да направим нищо. Обектите са Работна книга, Работен лист и Обхват. Когато декларираме променлива, трябва да й присвоим тип данни и можем да присвоим обекти като типове данни. За да присвоим стойност на декларирани обектни променливи, трябва да използваме думата „SET“. Думата „Set“, използвана за означаване на нов обект във VBA, например, отнасяща се до конкретния диапазон на конкретния работен лист.

Как да използвам изявлението за задаване на Excel VBA?

Можете да изтеглите този шаблон на изявление на VBA от тук - шаблон на изявление на VBA

# 1 - Задаване на изявление с променливи на обхвата на обекта

Например приемете, че искате да използвате диапазона от A1 до D5 доста често. Вместо да записваме кода като диапазон („A1: D5“) всеки път, можем да декларираме променливата като диапазон и да зададем референцията на диапазона като диапазон („A1: D5“)

Стъпка 1: Декларирайте променливата като Range обект.

Код:

 Подгрупа_Пример ()

Затъмнете MyRange As Range

Крайна под

Стъпка 2: В момента, в който присвоим типа данни като обхват, използвайте думата „Set“.

Код:

 Sub Set_Example () Dim MyRange As Range Set MyRange = End Sub 

Стъпка 3: Сега споменете диапазона.

Код:

 Sub Set_Example () Dim MyRange As Range Set MyRange = Range ("A1: D5") End Sub 

Стъпка 4: Сега променливата “MyRange” е равна на диапазона от A1 до D5. Използвайки тази променлива, ние можем да получим достъп до всички свойства и методи от този диапазон.

Можем да копираме, да добавяме коментар в Excel и да правим много други неща.

Например за целта тук съм създал няколко числа.

Сега, използвайки променливата, ще променя размера на шрифта на 12.

Код:

 Sub Set_Example () Dim MyRange As Range Set MyRange = Range ("A1: D5") MyRange.Font.Size = 12 End Sub 

Това ще промени размера на шрифта на зададения диапазон.

По този начин можем да направим много неща с определен диапазон, като използваме думата „Set“.

# 2 - Задайте изявление с променливи на обект на работен лист

Видяхме как „set“ работи с обект от диапазон във VBA. Той работи точно по същия начин като обекта на работния лист.

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

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

Код:

 Sub Set_Worksheet_Example () Dim Ws As Worksheet Set Ws = Worksheets ("Summary Sheet") End Sub 

В горния код променливата „Ws“ се дефинира като обектна променлива, а в следващия ред с помощта на думата „Set“ задаваме променливата на работния лист, наречен „Summary Sheet“.

Сега, използвайки тази променлива, можем да направим всички неща, свързани с нея. Разгледайте по-долу два набора код.

# 1 - Без дума „Set“

Код:

 Sub Set_Worksheet_Example1 () 'За да изберете листа Работни листове ("Обобщаващ лист"). Изберете "За да активирате листа Работни листове (" Обобщен лист "). Активирайте" За да скриете работните листове на листа ("Обобщен лист"). Видим = xlVeryHidden' За разкрийте листа Работни листове ("Обобщен лист"). Видим = xl Видим Краен под 

Всеки път, когато използвах обекта на работни листове, за да се позова на листа „Обобщен лист“. Това прави кода толкова дълъг и изисква много време за въвеждане.

As part of the huge code, it is frustrating to type the worksheet name like this every time you need to reference the worksheet.

Now take a look at the advantage of using the word Set in Code.

#2 – With “Set” Word

Code:

 Sub Set_Worksheet_Example() Dim Ws As Worksheet Set Ws = Worksheets("Summary Sheet") 'To select the sheet Ws.Select 'To Activate the sheet Ws.Activate 'To hide the sheet Ws.Visible = xlVeryHidden 'To unhide the sheet Ws.Visible = xlVisible End Sub 

The moment we set the worksheet name we can see the variable name while entering the code as part of the list.

#3 – Set Statement with Workbook Object Variables

The real advantage of the word “Set” in VBA arises when we need to reference different workbooks.

When we work with different workbooks it is so hard to type in the full name of the workbook along with its file extension.

Assume you have two different workbooks named “Sales Summary File 2018.xlsx” and “Sales Summary File 2019.xlsx” we can set the two workbooks like the below code.

Code:

 Sub Set_Workbook_Example1() Dim Wb1 As Workbook Dim Wb2 As Workbook Set Wb1 = Workbooks("Sales Summary File 2018.xlsx") Set Wb2 = Workbooks("Sales Summary File 2019.xlsx") End Sub 

Now variable Wb1 is equal to the workbook named “Sales Summary File 2018.xlsx” and variable Wb2 is equal to the workbook named “Sales Summary File 2019.xlsx”.

Using this variable we can actually access all the properties and methods associated with the workbook.

We can shorten the code like the below.

Without Using Set Keyword to activate the workbook:

Workbooks("Sales Summary File 2018.xlsx").Activate

Using the Set Keyword to activate the workbook:

Wb1.Activate

This makes the writing of the code lot simpler and also once the workbook name is set there is a worry of typo error of the workbook names.