VBA ActiveSheet og hvordan du aktiverer eller velger et ark

Denne artikkelen vil diskutere ActiveSheet -objektet i VBA. Det vil også diskutere hvordan du aktiverer, velger og går til regneark (og mye mer). Les hele VBA -regnearkguiden vår for mer informasjon om arbeid med regneark i VBA.

Aktivt ark

I VBA refererer ActiveSheet til det nåværende aktive regnearket. Bare ett ark kan være aktivt om gangen.

Aktiver regneark (Angi ActiveSheet)

For å angi ActiveSheet, bruk Worksheet.Activate:

1 Regneark ("Inndata"). Aktiver

Kommandoen Aktiver ark vil faktisk "gå til" arket og endre det synlige arket.

Eksemplet ovenfor bruker arket (Tab) -navnet. I stedet kan du bruke VBA -kodenavnet for regnearket:

1 Ark 1.Aktiver

ActiveSheet -navn

Slik får du navnet på ActiveSheet:

1 msgbox ActiveSheet.name

Utvalgte ark vs ActiveSheet

Når som helst kan bare ett ark være ActiveSheet. Imidlertid kan flere regneark velges samtidig.

Når flere regneark er valgt, regnes bare det "øverste" regnearket som aktivt (ActiveSheet).

Velg Regneark

Hvis du vil velge et regneark i stedet for å aktivere det. Bruk .Velg i stedet.

Velg Regneark etter kategorienavn

Dette velger et regneark basert på bladnavnet

1 Ark ("Inndata"). Velg

Velg Regneark etter indeksnummer

Dette velger et regneark basert på posisjonen i forhold til andre faner

1 Regneark (1) .Velg

Velg regneark med VBA -kodenavn

1 Ark 1. Velg

Å velge regneark etter kodenavn kan forhindre feil forårsaket av endringer i regneark.

Velg Gjeldende regneark

For å velge det gjeldende regnearket, bruk ActiveSheet -objektet:

1 Velg ActiveSheet

Flere aktiver / velg arkeksempler

Sett ActiveSheet til Variable

Dette vil tildele ActiveSheet til en regnearksobjektvariabel.

123 Dim ws Som regnearkSett ws = ActiveSheet

Endre ActiveSheet -navn

Dette vil endre ActiveSheet -navnet.

1 ActiveSheet.Name = "Nytt navn"

Med ActiveSheet

Ved å bruke With -setningen kan du effektivisere koden når du arbeider med objekter (for eksempel Sheets eller ActiveSheet).

12345 Med ActiveSheet.Name = "StartFresh".Celler.Klar.Range ("A1"). Verdi = .navnSlutt med

Legg merke til hvordan du ikke trenger å gjenta "ActiveSheet" før hver kodelinje. Dette kan være en enorm tidsbesparelse når du arbeider med en lang liste med kommandoer.

Sløyfe gjennom utvalgte ark

Følgende makro vil gå gjennom alle valgte ark og vise navnene deres.

12345678 Sub GetSelectedSheetsName ()Dim ws Som regnearkFor hver gang i ActiveWindow.SelectedSheetsMsgBox ws.NameNeste wsSlutt Sub

Gå til neste ark

Denne koden går til neste ark. Hvis ActiveSheet er det siste arket, går det til det første arket i arbeidsboken.

12345 Hvis ActiveSheet.Index = Worksheets.Count DaRegneark (1) .AktiverEllersActiveSheet.Next.ActivateSlutt om

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave