Denne artikel vil diskutere ActiveSheet -objektet i VBA. Det vil også diskutere, hvordan du aktiverer, vælger og går til regneark (og meget mere). Læs vores fulde VBA -regnearkguide for mere information om arbejde med regneark i VBA.
ActiveSheet
I VBA refererer ActiveSheet til det aktuelt aktive regneark. Kun et ark kan være aktivt ad gangen.
Aktiver regneark (Indstilling af ActiveSheet)
For at indstille ActiveSheet skal du bruge regneark. Aktivere:
1 | Regneark ("Input"). Aktiver |
Kommandoen Aktiver ark vil faktisk "gå til" arket og ændre det synlige ark.
Ovenstående eksempel bruger arket (Tab) -navnet. I stedet kan du bruge VBA -kodenavnet til regnearket:
1 | Ark 1.Aktiver |
ActiveSheet -navn
Sådan får du ActiveSheet -navnet:
1 | msgbox ActiveSheet.name |
Udvalgte ark vs ActiveSheet
På ethvert tidspunkt kan kun et ark være ActiveSheet. Imidlertid kan flere regneark vælges på én gang.
Når der vælges flere regneark, betragtes kun det "øverste" regneark som aktivt (ActiveSheet).
Vælg regneark
Hvis du gerne vil vælge et regneark i stedet for at aktivere det. Brug .Vælg i stedet.
Vælg regneark efter fanenavn
Dette vælger et regneark baseret på dets fanebladnavn
1 | Ark ("Input"). Vælg |
Vælg regneark efter indeksnummer
Dette vælger et regneark baseret på dets position i forhold til andre faner
1 | Regneark (1) .Vælg |
Vælg regneark med VBA -kodenavn
1 | Ark 1.Vælg |
Valg af regneark efter kodenavn kan forhindre fejl forårsaget af ændringer i regnearksnavn.
Vælg Aktuelt regneark
For at vælge det aktuelle regneark skal du bruge ActiveSheet -objektet:
1 | Vælg ActiveSheet |
Flere aktiver / vælg arkeksempler
Indstil ActiveSheet til Variabel
Dette vil tildele ActiveSheet til en regnearksobjektvariabel.
123 | Dim ws Som regnearkIndstil ws = ActiveSheet |
Skift ActiveSheet -navn
Dette ændrer ActiveSheet -navnet.
1 | ActiveSheet.Name = "Nyt navn" |
Med ActiveSheet
Brug af With -erklæringen giver dig mulighed for at strømline din kode, når du arbejder med objekter (f.eks. Sheets eller ActiveSheet).
12345 | Med ActiveSheet.Name = "StartFresh".Celler.Klar.Range ("A1"). Værdi = .NameAfslut med |
Læg mærke til, hvordan du ikke behøver at gentage "ActiveSheet" før hver kodelinje. Dette kan være en enorm tidsbesparelse, når du arbejder med en lang liste med kommandoer.
Sløjfe gennem udvalgte ark
Den følgende makro løber gennem alle markerede ark og viser deres navne.
12345678 | Sub GetSelectedSheetsName ()Dim ws Som regnearkFor hver gang i ActiveWindow.SelectedSheetsMsgBox ws.NameNæste wsAfslut Sub |
Gå til næste ark
Denne kode går til det næste ark. Hvis ActiveSheet er det sidste ark, går det til det første ark i projektmappen.
12345 | Hvis ActiveSheet.Index = Worksheets.Count HerefterArbejdsark (1) .AktiverAndetActiveSheet.Next.ActivateAfslut Hvis |