VBA ActiveSheet och hur du aktiverar eller väljer ett ark

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

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

wave wave wave wave wave