Tento článek bude diskutovat o objektu ActiveSheet ve VBA. Bude také diskutovat o tom, jak aktivovat, vybrat a přejít na pracovní listy (a mnoho dalšího). Další informace o práci s listy ve VBA najdete v našem úplném průvodci pracovními listy VBA.
ActiveSheet
Ve VBA ActiveSheet odkazuje na aktuálně aktivní list. Současně může být aktivní pouze jeden list.
Aktivovat pracovní list (nastavení ActiveSheetu)
Chcete -li nastavit ActiveSheet, použijte Worksheet.Activate:
1 | Pracovní listy („Vstup“). Aktivujte |
Příkaz Aktivovat list ve skutečnosti „přejde“ na list a změní viditelný list.
Výše uvedený příklad používá název List (Tab). Místo toho můžete pro kód použít kódové jméno VBA:
1 | List 1. Aktivujte |
Název ActiveSheet
Získání názvu ActiveSheet:
1 | msgbox ActiveSheet.name |
Vybrané listy vs ActiveSheet
V každém okamžiku může být ActiveSheet pouze jeden list. Lze však vybrat více pracovních listů najednou.
Je-li vybráno více listů, je za aktivní považován pouze list „nahoře“ (ActiveSheet).
Vyberte pracovní list
Pokud chcete místo aktivace listu vybrat. Místo toho použijte .Vyberte.
Vyberte list podle názvu karty
Tím se vybere pracovní list na základě názvu záložky listu
1 | Listy („Vstup“). Vyberte |
Vyberte list podle indexového čísla
Tím se vybere list na základě jeho polohy vůči jiným kartám
1 | Pracovní listy (1). Vyberte |
Vyberte list s kódovým názvem VBA
1 | List 1. Vyberte |
Výběr listů podle kódového názvu může zabránit chybám způsobeným změnami názvu listu.
Vyberte Aktuální pracovní list
Chcete -li vybrat aktuální list, použijte objekt ActiveSheet:
1 | Vyberte ActiveSheet |
Více Aktivovat / Vybrat Příklady listů
Nastavte ActiveSheet na proměnnou
Tím přiřadíte ActiveSheet proměnné objektu listu.
123 | Dim ws As WorksheetNastavit ws = ActiveSheet |
Změňte název ActiveSheet
Tím se změní název ActiveSheet.
1 | ActiveSheet.Name = "Nové jméno" |
S ActiveSheet
Použití příkazu With vám umožňuje zefektivnit kód při práci s objekty (jako jsou například Tabulky nebo ActiveSheet).
12345 | S ActiveSheet.Name = "StartFresh".Články. Jasné.Range ("A1"). Hodnota = .NameKonec s |
Všimněte si, že před každým řádkem kódu nemusíte opakovat „ActiveSheet“. Při práci s dlouhým seznamem příkazů to může být obrovská úspora času.
Projděte vybrané listy
Následující makro bude procházet všemi vybranými listy a zobrazí jejich názvy.
12345678 | Sub GetSelectedSheetsName ()Dim ws As WorksheetPro každý ws v ActiveWindow.SelectedSheetsMsgBox ws.NameDalší wsEnd Sub |
Přejít na další list
Tento kód přejde na další list. Pokud je ActiveSheet posledním listem, pak přejde na první list v sešitu.
12345 | Pokud ActiveSheet.Index = Worksheets.Count ThenPracovní listy (1). AktivovatJinýActiveSheet.Next.ActivateKonec If |