VBA med - Hur man använder med ... Avsluta med uttalande i Excel VBA?

Innehållsförteckning

Med uttalande i Excel VBA

With statement används i VBA för att komma åt alla egenskaper och metoder för ett nämnt objekt. Vi måste tillhandahålla vilket VBA-objekt vi hänvisar till först och sedan stänga With-uttalandet med End With och sedan inuti detta uttalande. Vi kan utföra alla egenskapsändringar och metoder för det nämnda objektet.

Nedan är syntaksen för With Statement i VBA.

Med (OBJECT) (Kod … Vad måste göras?) Avsluta med

Objektet är inget annat än ett antal celler eller celler som vi hänvisar till, och sedan kan vi ändra egenskaperna och utföra alla metoder som är associerade med den specifika cellen eller cellerna.

Hur man använder med uttalande i Excel VBA?

Nedan följer några exempel att använda With Statement i Excel VBA.

Exempel 1

Antag att du har ett visst värde i A1-cell, jag har skrivit in texten som "Excel VBA" i cell A1.

Nu för den här cellen måste jag göra några uppgifter, dvs formatera i Excel.

Jag vill ändra teckensnittsstorlek, teckensnittsnamn och interiörfärg, infoga en ram osv … Typiskt vad vi gör är att vi först hänvisar cellen med hjälp av VBA RANGE-objekt.

Koda:

Sub With_Example1 () Range ("A1") End Sub

Nu för att ändra teckensnittsstorlek, kommer vi till "font" -egenskapen för den här cellen.

Under egenskapen FONT får vi tillgång till egenskapen Storlek och anger storlek genom att sätta ett likhetstecken.

Koda:

Sub With_Example1 () Range ("A1") Font.Size = 15 End Sub

Nu på samma sätt gör vi andra formateringsuppgifter, som visas nedan.

Koda:

Sub With_Example1 () Range ("A1"). Font.Size = 15 Range ("A1"). Font.Name = "Verdana" Range ("A1"). Interior.Color = vbGult Range ("A1"). .LineStyle = xlContinuous End Sub

Detta kommer att göra alla de nämnda uppgifterna, men om du tittar på koden för att utföra varje formateringsaktivitet har vi angett celladressen varje gång. Detta gör att koden ser lång och tidskrävande ut.

Nu kommer vi att använda VBA With ett uttalande för att minska inmatningen av celladressen varje gång. Öppna MED-uttalande i Excel VBA och ange celladress.

Koda:

Sub With_Example1 () With Range ("A1") End Sub

Inuti With-uttalandet, sätt en punkt för att se alla egenskaper och metoder för cell A1.

Nu ändrar den första formateringsaktiviteten teckensnittsstorlek, så öppna FONT och under den här åtkomststorleken.

Koda:

Sub With_Example1 () With Range ("A1") .Font.Size = 15 End Sub

På samma sätt, ange andra formateringskoder och stäng VBA With Statement.

Koda:

Sub With_Example1 () With Range ("A1") .Font.Size = 15 .Font.Name = "Verdana" .Interior.Color = vbGul .Borders.LineStyle = xlContinuous End With End Sub

Kör koden för att se all formatering i nämnda objekt, dvs cell A1.

Så all formatering tillämpas på cellen. Titta hur cool den här tekniken är.

Exempel 2

Om du till exempel vill ändra alla egenskaper relaterade till teckensnittet kan du nämna cellen och FONT-egenskapen.

Koda:

Sub With_Example2 () With Range ("A1") Font End With End Sub

Inside the VBA With Statement, we can see the IntelliSense list. It will show properties and methods related to FONT property only.

We can perform any set of activities with this now.

Code:

Sub With_Example2() With Range("A1").Font .Bold = True 'Font will be Bold .Color = vbAlias 'Font color will be Alias .Italic = True 'Font will be italic style .Size = 20 ' Font size will be 20 .Underline = True 'Font will be underlined End With End Sub

The result of this will be as shown below.

Example #3

The below code will access only cell border-related properties.

Code:

Sub With_Example3() With Range("B2").Borders .Color = vbRed 'Border color will be red .LineStyle = xlContinuous 'Full border .Weight = xlThick 'Thick border End With End Sub

The result of this code is as follows.

Things to Remember

  • With statement används för att minimera koden.
  • Vi måste leverera objekt först för With-uttalandet.
  • När det specifika objektet har levererats kan vi bara komma åt objektets egenskaper och metoder.

Intressanta artiklar...