VBA-verklaring instellen - Waarden toewijzen aan objectvariabelen?

Excel VBA Set-instructie

VBA Set is een instructie die wordt gebruikt om een ​​waardesleutel toe te wijzen, zegt een object of een verwijzing naar een variabele, we gebruiken deze functie om de parameter voor een bepaalde variabele te definiëren, bijvoorbeeld als we Set M = A schrijven, wat nu M betekent referentie heeft dezelfde waarden en attributen die vergelijkbaar zijn met wat A heeft.

In VBA is een object de kern van het Excel, want zonder objecten kunnen we niets doen. Objecten zijn werkmap, werkblad en bereik. Als we een variabele declareren, moeten we er een gegevenstype aan toewijzen, en we kunnen ook objecten als gegevenstype toewijzen. Om een ​​waarde toe te wijzen aan gedeclareerde objectvariabelen, moeten we het woord 'SET' gebruiken. Het woord "Set" wordt gebruikt om te verwijzen naar een nieuw object in VBA, bijvoorbeeld verwijzend naar het specifieke bereik van het specifieke werkblad.

Hoe gebruik ik Excel VBA Set Statement?

# 1 - Set-instructie met bereikobjectvariabelen

Stel dat u het bereik A1 tot D5 vrij vaak wilt gebruiken. In plaats van de code elke keer als bereik ("A1: D5") te schrijven, kunnen we de variabele als bereik declareren en de bereikreferentie instellen als bereik ("A1: D5")

Stap 1: Declareer de variabele als een Range-object.

Code:

Subset_voorbeeld ()

Dim MyRange als bereik

Einde Sub

Stap 2: Op het moment dat we het gegevenstype als bereik toewijzen, gebruikt u het woord 'Set'.

Code:

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

Stap 3: Noem nu het bereik.

Code:

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

Stap 4: Nu is de variabele "MyRange" gelijk aan het bereik A1 tot D5. Met behulp van deze variabele hebben we toegang tot alle eigenschappen en methoden van dit bereik.

We kunnen kopiëren, een opmerking toevoegen in Excel en vele andere dingen doen.

Voor het doel heb ik hier bijvoorbeeld een aantal nummers gemaakt.

Nu ik de variabele gebruik, zal ik de lettergrootte wijzigen in 12.

Code:

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

Dit zal de lettergrootte van het toegewezen bereik veranderen.

Op deze manier kunnen we veel dingen doen met een bepaald bereik door het woord 'Set' te gebruiken.

# 2 - Stel een verklaring in met variabelen in het werkbladobject

We hebben gezien hoe "set" werkt met een bereikobject in VBA. Het werkt ook precies hetzelfde als het werkbladobject.

Stel dat uw werkmap vijf werkbladen heeft en u wilt teruggaan naar dat ene werkblad. U kunt die werkbladnaam instellen op de gedefinieerde objectvariabele.

Kijk bijvoorbeeld naar de onderstaande code.

Code:

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

In de bovenstaande code wordt de variabele 'Ws' gedefinieerd als een objectvariabele, en op de volgende regel, door het woord 'Set' te gebruiken, stellen we de variabele in op het werkblad met de naam 'Summary Sheet'.

Door deze variabele te gebruiken, kunnen we alle dingen doen die eraan zijn gekoppeld. Bekijk de onderstaande twee sets codes.

# 1 - Zonder “Set” -woord

Code:

Sub Set_Worksheet_Example1 () 'Om het werkblad Worksheets ("Summary Sheet") te selecteren. Selecteer' Om het werkblad Worksheets te activeren ("Summary Sheet"). Activate 'Om de werkbladen te verbergen ("Summary Sheet"). Visible = xlVeryHidden' To maak het werkblad zichtbaar ("Summary Sheet") Visible = xlVisible End Sub

Elke keer dat ik het werkbladobject heb gebruikt om naar het blad "Samenvattingsblad" te verwijzen, maakt dit de code zo lang en kost het veel tijd om te typen.

Als onderdeel van de enorme code is het frustrerend om de werkbladnaam elke keer dat u naar het werkblad moet verwijzen op deze manier in te typen.

Bekijk nu het voordeel van het gebruik van het woord Set in Code.

# 2 - Met "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

Nu is variabele Wb1 gelijk aan de werkmap met de naam "Verkoopoverzichtsbestand 2018.xlsx" en variabele Wb2 is gelijk aan de werkmap met de naam "Verkoopoverzichtsbestand 2019.xlsx".

Met behulp van deze variabele hebben we eigenlijk toegang tot alle eigenschappen en methoden die aan de werkmap zijn gekoppeld.

We kunnen de code zoals hieronder inkorten.

Zonder Trefwoord instellen te gebruiken om de werkmap te activeren:

Werkmappen ("Verkoopoverzichtsbestand 2018.xlsx"). Activeer

Gebruik het Set-trefwoord om de werkmap te activeren:

Wb1.Activeren

Dit maakt het schrijven van de codepartij eenvoudiger, en ook, als de werkmapnaam eenmaal is ingesteld, is er een bezorgdheid over typefouten in de werkmapnamen.

Interessante artikelen...