VBA ActiveSheet a jak aktivovat nebo vybrat list

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
wave wave wave wave wave