W tym artykule omówimy obiekt ActiveSheet w VBA. Omówi również, jak aktywować, wybierać i przechodzić do Arkuszy (i wiele więcej). Przeczytaj nasz pełny przewodnik po arkuszach roboczych VBA, aby uzyskać więcej informacji na temat pracy z arkuszami roboczymi w VBA.
Aktywny arkusz
W VBA ActiveSheet odnosi się do aktualnie aktywnego arkusza roboczego. W danym momencie aktywny może być tylko jeden Arkusz.
Aktywuj Arkusz (Ustawianie ActiveSheet)
Aby ustawić ActiveSheet użyj Worksheet.Activate:
1 | Arkusze ("Wejście"). Aktywuj |
Polecenie Aktywuj arkusz faktycznie „przejdzie” do arkusza, zmieniając widoczny arkusz.
W powyższym przykładzie użyto nazwy Arkusz (Tab). Zamiast tego możesz użyć nazwy kodowej VBA dla arkusza roboczego:
1 | Arkusz1.Aktywuj |
Nazwa aktywnego arkusza
Aby uzyskać nazwę ActiveSheet:
1 | msgbox ActiveSheet.name |
Wybrane arkusze a ActiveSheet
W dowolnym momencie tylko jeden Arkusz może być ActiveSheet. Można jednak wybrać wiele arkuszy roboczych jednocześnie.
Gdy zaznaczonych jest wiele Arkuszy, tylko arkusz „najwyższy” jest uważany za aktywny (ActiveSheet).
Wybierz arkusz roboczy
Jeśli chcesz wybrać arkusz zamiast go aktywować. Zamiast tego użyj .Select.
Wybierz arkusz według nazwy karty
Spowoduje to wybranie arkusza roboczego na podstawie jego nazwy zakładki arkusza
1 | Arkusze("Wejście").Wybierz |
Wybierz arkusz według numeru indeksu
Spowoduje to wybranie arkusza roboczego na podstawie jego pozycji w stosunku do innych zakładek
1 | Arkusze (1). Wybierz |
Wybierz arkusz roboczy z nazwą kodową VBA
1 | Arkusz1.Wybierz |
Wybór arkuszy roboczych według nazwy kodowej może zapobiec błędom spowodowanym zmianą nazwy arkusza roboczego.
Wybierz bieżący arkusz roboczy
Aby wybrać bieżący Arkusz, użyj obiektu ActiveSheet:
1 | Aktywny arkusz.Wybierz |
Więcej Aktywuj / Wybierz przykłady arkuszy
Ustaw ActiveSheet na zmienną
Spowoduje to przypisanie ActiveSheet do zmiennej obiektu arkusza roboczego.
123 | Dim ws As WorksheetUstaw ws = Aktywny arkusz |
Zmień nazwę aktywnego arkusza
Spowoduje to zmianę nazwy ActiveSheet.
1 | ActiveSheet.Name = "Nowa nazwa" |
Z ActiveSheet
Użycie instrukcji With umożliwia usprawnienie kodu podczas pracy z obiektami (takimi jak Arkusze lub ActiveSheet).
12345 | Z ActiveSheet.Name = "StartFresh".Komórki.Wyczyść.Range("A1").Value = .NazwaKończyć z |
Zwróć uwagę, że nie musisz powtarzać „ActiveSheet” przed każdym wierszem kodu. Może to bardzo zaoszczędzić czas podczas pracy z długą listą poleceń.
Zapętlaj wybrane arkusze
Następujące makro wykona pętlę przez wszystkie wybrane arkusze, wyświetlając ich nazwy.
12345678 | Sub GetSelectedSheetsName()Dim ws As WorksheetDla każdego ws In ActiveWindow.SelectedSheetsMsgBox ws.NameNastępnyNapis końcowy |
Przejdź do następnego arkusza
Ten kod przejdzie do następnego arkusza. Jeśli ActiveSheet jest ostatnim Arkuszem, przejdzie do pierwszego Arkusza w skoroszycie.
12345 | Jeśli ActiveSheet.Index = Worksheets.Count ThenArkusze(1).AktywujW przeciwnym razieAktywny arkusz.Następny.AktywujZakończ, jeśli |