Tento tutoriál se bude zabývat interakcí s názvy listů ve VBA.
Získejte název listu
Názvy listů jsou uloženy v souboru název majetek Povlečení na postel nebo Pracovní listy objekt. Název listu je název „záložky“, který je viditelný v dolní části aplikace Excel:
Získejte název ActiveSheet
Zobrazí se název ActiveSheet v okně zprávy:
1 | MsgBox ActiveSheet.Name |
Získejte název listu podle indexového čísla
Zobrazí se název prvního listu v okně zprávy:
1 | Listy MsgBox (1). Název |
Zobrazí se název posledního listu v sešitu:
1 | MsgBox Sheets (Sheets.Count) .Name |
Získejte název listu podle kódového jména
V editoru VBA je možnost změnit „kódové jméno“ listu. Kódové jméno není pro uživatele Excelu viditelné a lze jej zobrazit pouze v editoru VBA:
Ve VBA můžete při práci s Tabulkami odkazovat na obvyklý název karty:
1 | Tabulky („TabName“). Aktivujte |
nebo kódové jméno VBA:
1 | CodeName.Activate |
Odkazování na kódový název je žádoucí v případě, že se název karty List někdy změní. Pokud povolíte uživateli aplikace Excel přístup ke změně názvů listů, měli byste odkazovat na kódové jméno v kódu VBA, aby nesoulad názvů karet na listu nezpůsobil chybu. Kódové názvy listů jsou zde podrobněji rozebrány.
Chcete -li získat název listu pomocí kódového názvu VBA, postupujte takto:
1 | MsgBox CodeName.Name |
Přejmenovat list
Tabulky můžete přejmenovat úpravou název majetek Povlečení na postel nebo Pracovní listy objekt.
Přejmenujte ActiveSheet
1 | ActiveSheet.Name = "Nové jméno" |
Přejmenujte list podle názvu
1 | Listy ("OldSheet"). Name = "NewName" |
Přejmenujte list podle indexového čísla listu
Zde pomocí 1 přejmenujeme první list v sešitu.
1 | Listy (1) .Name = "NewName" |
Přejmenujte list podle kódového jména
Tento kód přejmenuje list pomocí jeho kódového názvu VBA (diskutováno výše):
1 | Component.Name = "NewName" |
Zkontrolujte, zda existuje název listu
Vytvořili jsme funkci pro testování, zda list s konkrétním názvem již existuje.
123456789101112 | „Vyzkoušejte, zda rozsah existuje na listu.'Nechte rozsah prázdný, abyste otestovali, zda list existuje'Vstupy:'WhatSheet - Řetězcový název listu (ex "Sheet1")'WhatRange (Volitelné, Výchozí = "A1") - Název řetězce rozsahu (ex "A1")Rozsah funkcíExistuje (WhatSheet jako řetězec, volitelně ByVal WhatRange jako řetězec = "A1") jako logická hodnotaDim test As RangePři chybě Pokračovat DalšíNastavit test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Při chybě GoTo 0Koncová funkce |
Funkce vrátí TRUE, pokud list existuje, nebo FALSE, pokud neexistuje.
Použijte funkci takto:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("nastavení")End Sub |
Kopírovat list a přejmenovat
Tento příklad je z našeho článku o kopírování listů.
Po zkopírování a vložení listu se z nově vytvořeného listu stane ActiveSheet. Chcete -li zkopírovaný list přejmenovat, jednoduše použijte ActiveSheet.Name:
12345678 | Dílčí CopySheetRename2 ()Listy ("List1"). Kopírovat po: = Listy (Sheets.Count)Při chybě Pokračovat DalšíActiveSheet.Name = "Poslední list"Při chybě GoTo 0End Sub |
Poznámka: Přidali jsme zpracování chyb, abychom se vyhnuli chybám, pokud název listu již existuje.