VBA Med / Avsluta med uttalande

Denna artikel kommer att visa hur du använder With och End With i VBA

Excel ger oss möjlighet att lära sig VBA genom att spela in makron. Dessa makron registrerar bokstavligen allt vi gör på skärmen och konverterar åtgärderna till VBA -kod. Vi kan sedan analysera denna kod och lära av den.

När vi spelar in ett makro i VBA, mest betydelsefullt när vi ändrar cellformat, kommer makrot oftare än inte att använda With … End With Syntax i inspelningen. Att förstå vad dessa betyder och används för är en viktig del av VBA.

Spela in ett makro

För att spela in ett makro i Excel, i Band, Välj Visa> Makro> Spela in makro.

ELLER

Utvecklare> Spela in makro

Obs! Om du inte ser utvecklarbandet måste du aktivera det. Klicka HÄR för att lära dig hur du gör detta.

Skriv in namnet på makrot och klicka på OK.

Markera några celler och formatera dem sedan för fetstil, ändra färgen till röd och ändra teckenstorleken. Klicka sedan på Stopp i nedre vänstra hörnet på skärmen för att stoppa inspelningsmakro.

MED Uttalande Syntax

För att visa / redigera ditt inspelade makro: Välj i menyfliksområdet Visa> Makron> Visa makron. Välj makrot som just spelats in och klicka sedan på Redigera.

ELLER

Välj i menyfliksområdet Utvecklare> Visual Basic för att växla till VBE -fönstret.

Det inspelade makrot kan se ut som exemplet nedan

123456789 Sub WithMacro ()Område ("A2: C10"). VäljSelection.Font.Bold = TrueSelection.Font.Size = 12Med urval. Font.Color = -16776961.TintAndShade = 0Sluta medAvsluta Sub

För det första har vi valt intervallet A2: C10.

Vi har sedan satt fetstil till true och teckenstorleken till 12. Observera att koden “Selection.Font” upprepas för dessa rader.

Makrot har sedan registrerat oss ändra textens färg - notera att den här gången har Selection.Font ett MED framför den, och de två egenskaper som ändras (färgen och färgtonen) har en punkt (.) framför sig. Kodområdet kompletteras sedan med ett SLUTA MED.

För att förenkla den här koden kan vi flytta fetstil och storlek till att vara inom WITH -satsen, och därför ta bort behovet av att upprepa ordet Selection.

123456789 Sub WithMacro ()Område ("A2: C10"). VäljMed urval. Font.Fet = Sant. Storlek = 12.Color = -16776961.TintAndShade = 0Sluta medAvsluta Sub

Syntaxen för ett WITH … END WITH -uttalande är därför mycket enkelt:

123 MED objekt'egenskaper att formatera/ändraSLUTA MED

Vi kunde ha ändrat koden på ett annat sätt:

1234567 Sub RemoveWith ()Område ("A2: C10"). VäljSelection.Font.Bold = TrueSelection.Font.Size = 12Selection.Font.Color = -16776961Selection.Font.TintAndShade = 0Avsluta Sub

I exemplet ovan har vi lagt till orden Selection.Font till varje rad i koden. Vi har därför upprepade gånger refererat till Selection.Font -objektet i koden.

Att använda WITH -satsen innebär dock att vi bara behöver hänvisa till detta objekt en gång i koden. Det är ett renare sätt att koda - det berättar för VBA att börja med MED och slutet på END WITH - koden som ska köras är allt innesluten i de två orden. Det gör att makrot körs snabbare och mer effektivt (särskilt för längre makron) och lägger till struktur i din kod.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave