Den här artikeln kommer att diskutera ActiveSheet -objektet i VBA. Det kommer också att diskutera hur man aktiverar, väljer och går till arbetsblad (och mycket mer). Läs vår fullständiga VBA -arbetsbladguide för mer information om hur du arbetar med kalkylblad i VBA.
ActiveSheet
I VBA refererar ActiveSheet till det för närvarande aktiva kalkylbladet. Endast ett ark kan vara aktivt i taget.
Aktivera kalkylblad (ställa in ActiveSheet)
För att ställa in ActiveSheet, använd Worksheet.Activate:
1 | Arbetsblad ("Inmatning"). Aktivera |
Kommandot Aktivera blad kommer faktiskt att "gå till" arket och ändra det synliga arket.
I exemplet ovan används Sheet (Tab) -namnet. Istället kan du använda VBA -kodnamnet för kalkylbladet:
1 | Blad 1.Aktivera |
ActiveSheet -namn
För att få ActiveSheet -namnet:
1 | msgbox ActiveSheet.name |
Valda blad vs ActiveSheet
När som helst kan bara ett ark vara ActiveSheet. Men flera kalkylblad kan väljas samtidigt.
När flera kalkylblad väljs anses endast det "högst" kalkylbladet vara aktivt (ActiveSheet).
Välj kalkylblad
Om du vill välja ett kalkylblad istället för att aktivera det. Använd .Välj istället.
Välj kalkylblad efter fliknamn
Detta väljer ett kalkylblad baserat på bladets fliknamn
1 | Ark ("Inmatning"). Välj |
Välj kalkylblad efter indexnummer
Detta väljer ett kalkylblad baserat på dess position i förhållande till andra flikar
1 | Arbetsblad (1) .Välj |
Välj kalkylblad med VBA -kodnamn
1 | Ark 1. Välj |
Att välja kalkylblad efter kodnamn kan förhindra fel som orsakas av ändringar av kalkylblad.
Välj Aktuellt kalkylblad
För att välja det aktuella kalkylbladet, använd ActiveSheet -objektet:
1 | ActiveSheet.Select |
Mer Aktivera / Välj blad Exempel
Ställ in ActiveSheet på Variable
Detta tilldelar ActiveSheet till en variabel för kalkylbladobjekt.
123 | Dim ws Som arbetsbladAnge ws = ActiveSheet |
Ändra ActiveSheet -namn
Detta ändrar ActiveSheet -namnet.
1 | ActiveSheet.Name = "Nytt namn" |
Med ActiveSheet
Med With -satsen kan du effektivisera din kod när du arbetar med objekt (t.ex. Sheets eller ActiveSheet).
12345 | Med ActiveSheet.Name = "StartFresh".Celler. Rensa.Range ("A1"). Value = .NameSluta med |
Lägg märke till hur du inte behöver upprepa "ActiveSheet" före varje kodrad. Detta kan vara en enorm tidsbesparare när du arbetar med en lång lista med kommandon.
Slinga igenom utvalda ark
Följande makro kommer att bläddra igenom alla valda blad och visa deras namn.
12345678 | Sub GetSelectedSheetsName ()Dim ws Som arbetsbladFör varje ws i ActiveWindow.SelectedSheetsMsgBox ws.NameNästa wsAvsluta Sub |
Gå till nästa blad
Denna kod går till nästa blad. Om ActiveSheet är det sista bladet, går det till det första bladet i arbetsboken.
12345 | Om ActiveSheet.Index = Worksheets.Count DåArbetsblad (1) .AktiveraAnnanActiveSheet.Next.ActivateAvsluta om |