VBA Set Statemment | Cum se atribuie valori variabilelor de obiect?

Declarație set VBA Excel

Setul VBA este o declarație care este utilizată pentru a atribui orice cheie de valoare spune un obiect sau o referință la o variabilă, folosim această funcție pentru a defini parametrul pentru o anumită variabilă, de exemplu, dacă scriem setul M = A ceea ce înseamnă acum M referința are aceleași valori și atribute similare cu ceea ce are A.

În VBA, un obiect este un nucleu al excelului, deoarece fără obiecte nu putem face nimic. Obiectele sunt Caiet de lucru, Foaie de lucru și Interval. Când declarăm o variabilă, trebuie să îi atribuim un tip de date și putem atribui și obiecte ca tipuri de date. Pentru a atribui o valoare variabilelor obiect declarate, trebuie să folosim cuvântul „SET”. Cuvântul „Set” folosit pentru a se referi la un obiect nou în VBA, de exemplu, referindu-se la intervalul specific al foii de lucru.

Cum se utilizează declarația de setare VBA Excel?

Puteți descărca acest șablon de declarație de set VBA aici - Șablon de declarație de set VBA

# 1 - Setează instrucțiunea cu variabilele de obiect Range

De exemplu, presupuneți că doriți să utilizați intervalul A1 până la D5 destul de des. În loc să scriem codul ca Range („A1: D5”) de fiecare dată când putem declara variabila ca interval și setăm referința intervalului ca Range („A1: D5”)

Pasul 1: declarați variabila ca obiect Range.

Cod:

 Sub Set_Example ()

Dim MyRange As Range

Sfârșitul Sub

Pasul 2: În momentul în care atribuim tipul de date ca interval, folosiți cuvântul „Set”.

Cod:

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

Pasul 3: menționați acum gama.

Cod:

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

Pasul 4: Acum variabila „MyRange” este egală cu intervalul A1 până la D5. Folosind această variabilă putem accesa toate proprietățile și metodele acestui interval.

Putem copia, adăuga un comentariu în Excel și putem face multe alte lucruri.

De exemplu, am creat câteva numere aici.

Acum folosind variabila voi schimba dimensiunea fontului la 12.

Cod:

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

Aceasta va modifica dimensiunea fontului pentru intervalul atribuit.

Astfel, putem face multe lucruri cu o anumită gamă folosind cuvântul „Set”.

# 2 - Setați declarația cu variabilele de obiect ale foii de lucru

Am văzut cum funcționează „set” cu un obiect de gamă în VBA. Funcționează exact la fel ca și obiectul foii de lucru.

Să presupunem că aveți 5 foi de lucru în registrul dvs. de lucru și doriți să reveniți la o anumită foaie de lucru, puteți seta numele fișei de lucru la variabila obiect definită.

De exemplu, uitați-vă la codul de mai jos.

Cod:

 Sub Set_Worksheet_Example () Dim Ws As Worksheet Set Ws = Worksheets ("Foaie de rezumat") End Sub 

În codul de mai sus, variabila „Ws” a fost definită ca variabilă obiect, iar în următoarea linie, folosind cuvântul „Set”, setăm variabila pe foaia de lucru numită „Foaie de rezumat”.

Acum, folosind această variabilă, putem face toate lucrurile asociate cu aceasta. Aruncați o privire la cele două seturi de cod de mai jos.

# 1 - Fără cuvânt „Set”

Cod:

 Sub Set_Worksheet_Example1 () 'Pentru a selecta foile de lucru ale foii („Foaie de rezumat"). Selectați „Pentru a activa foile de lucru a foii („ Foaie de rezumat "). Activați„ Pentru a ascunde foile de lucru a foii („Foaie de rezumat"). Vizibil = xlVeryHidden' To afișați foile de lucru ale foii („Foaie de rezumat”). Vizibil = xlVizibil End Sub 

De fiecare dată când am folosit obiectul de foi de lucru pentru a mă refer la foaia „Foaie de rezumat”. Acest lucru face codul atât de lung și necesită mult timp pentru a tasta.

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.