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 |