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.