VBA Set Statement - Hur tilldelar jag värden till objektvariabler?

Innehållsförteckning

Uttalande om Excel VBA-set

VBA Set är ett uttalande som används för att tilldela valfri värdetangent som säger ett objekt eller en referens till en variabel, vi använder den här funktionen för att definiera parametern för en viss variabel, till exempel om vi skriver Set M = A vilket betyder nu M referens har samma värden och attribut som A har.

I VBA är ett objekt en kärna i excel, för utan objekt kan vi inte göra någonting. Objekten är arbetsbok, kalkylblad och intervall. När vi deklarerar en variabel måste vi tilldela en datatyp till den, och vi kan också tilldela objekt som datatyper. För att tilldela ett värde till deklarerade objektvariabler måste vi använda ordet "SET". Ordet "Set" används för att referera till ett nytt objekt i VBA, till exempel med hänvisning till det specifika området för det specifika kalkylbladet.

Hur använder jag Excel VBA Set Statement?

# 1 - Ställ in uttalande med variabeln för objektobjekt

Antag till exempel att du vill använda intervallet A1 till D5 ganska ofta. Istället för att skriva koden som Range (“A1: D5”) varje gång kan vi deklarera variabeln som intervall och ställa in områdesreferensen som Range (“A1: D5”)

Steg 1: Förklara variabeln som ett Range-objekt.

Koda:

Underuppsättning_Exempel ()

Dim MyRange As Range

Avsluta sub

Steg 2: I det ögonblick vi tilldelar datatypen som intervall, använd ordet "Set".

Koda:

Sub Set_Example () Dim MyRange As Range Ställ MyRange = End Sub

Steg 3: Nämn nu intervallet.

Koda:

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

Steg 4: Nu är variabeln "MyRange" lika med intervallet A1 till D5. Med hjälp av denna variabel kan vi komma åt alla egenskaper och metoder i detta intervall.

Vi kan kopiera, lägga till en kommentar i excel och göra många andra saker.

Till exempel, syfte, har jag skapat några nummer här.

Nu använder jag variabeln, jag ändrar teckensnittsstorleken till 12.

Koda:

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

Detta ändrar teckenstorleken för det tilldelade intervallet.

Så här kan vi göra många saker med ett visst intervall med ordet "Set".

# 2 - Ange uttalande med kalkylbladets objektvariabler

Vi har sett hur "set" fungerar med ett intervallobjekt i VBA. Det fungerar exakt samma som kalkylbladets objekt också.

Låt oss säga att du har 5 kalkylblad i din arbetsbok, och att du vill fortsätta att gå tillbaka till det specifika kalkylbladet. Du kan ställa in kalkylbladets namn till den definierade objektvariabeln.

Titta till exempel på koden nedan.

Koda:

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

I ovanstående kod definierade variabeln "Ws" som en objektvariabel och i nästa rad, genom att använda ordet "Set", ställer vi in ​​variabeln till kalkylbladet "Sammanfattningsblad".

Nu genom att använda denna variabel kan vi göra alla saker som är associerade med den. Ta en titt på nedanstående två uppsättningar kod.

# 1 - Utan "Set" Word

Koda:

Sub Set_Worksheet_Example1 () 'För att välja arkets kalkylblad ("Sammanfattningsblad"). Välj "För att aktivera kalkylbladet (" Sammanfattningsblad "). Aktivera" för att dölja kalkylbladet ("Sammanfattningsblad"). Visible = xlVeryHidden "To ta bort arket Arbetsblad ("Sammanfattningsblad"). Synlig = xlVisible End Sub

Varje gång jag har använt kalkylarkobjektet för att hänvisa till arket "Sammanfattningsblad", blir koden så lång och kräver mycket tid att skriva.

Som en del av den enorma koden är det frustrerande att skriva kalkylbladets namn så här varje gång du behöver referera till kalkylbladet.

Ta nu en titt på fördelen med att använda ordet Set in Code.

# 2 - Med "Set" Word

Koda:

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 Som Workbook Dim Wb2 Som Workbook Set Wb1 = Workbooks ("Sales Summary File 2018.xlsx") Set Wb2 = Workbooks ("Sales Summary File 2019.xlsx") End Sub

Nu är variabel Wb1 lika med arbetsboken med namnet "Försäljningsöversiktsfil 2018.xlsx" och variabel Wb2 är lika med arbetsboken med namnet "Försäljningsöversiktsfil 2019.xlsx".

Med den här variabeln kan vi faktiskt få tillgång till alla egenskaper och metoder som är associerade med arbetsboken.

Vi kan förkorta koden enligt nedan.

Utan att använda Set Keyword för att aktivera arbetsboken:

Arbetsböcker ("Försäljningsöversiktsfil 2018.xlsx"). Aktivera

Använd Set Keyword för att aktivera arbetsboken:

Wb1.Aktivera

Detta gör skrivningen av kodpartiet enklare, och när arbetsbokens namn väl är inställt är det en oro för skrivfel i arbetsbokens namn.

Intressanta artiklar...