VBA Отримати назву аркуша / перейменувати аркуш

Цей підручник охопить взаємодію з іменами аркушів у VBA.

Отримати назву аркуша

Назви аркушів зберігаються у Назва власності Листи або Робочі листи об'єкт. Назва аркуша - це назва вкладки, яка відображається внизу Excel:

Отримайте назву ActiveSheet

Це відобразить ім'я ActiveSheet у вікні повідомлення:

1 MsgBox ActiveSheet.Name

Отримайте назву аркуша за номером індексу

Це відобразить назву першого аркуша у вікні повідомлення:

1 Аркуші MsgBox (1). Назва

Це відобразить назву останнього робочого аркуша у книзі:

1 MsgBox Sheets (Sheets.Count) .Name

Отримайте назву аркуша за кодовою назвою

У редакторі VBA є можливість змінити "кодове ім'я" аркуша. Кодове ім’я не видно користувачеві Excel і його можна побачити лише у редакторі VBA:

У VBA під час роботи з Таблицями можна посилатися на звичайну назву вкладки:

1 Таблиці ("TabName"). Активуйте

або кодове ім'я VBA:

1 CodeName.Activate

Посилання на кодове ім'я бажане в разі зміни назви вкладки "Аркуш". Якщо ви надаєте користувачеві Excel доступ до зміни назв аркушів, вам слід вказати кодове ім’я у вашому коді VBA, щоб невідповідність імені вкладки «Аркуш» не викликало помилки. Тут більш детально обговорюються кодові назви аркушів.

Щоб отримати ім’я аркуша за допомогою кодового імені VBA, виконайте наведені нижче дії.

1 MsgBox CodeName.Name

Перейменувати аркуш

Ви можете перейменувати Аркуші, змінивши ім'я власності Листи або Робочі листи об'єкт.

Перейменуйте ActiveSheet

1 ActiveSheet.Name = "Нове ім'я"

Перейменуйте аркуш за назвою

1 Таблиці ("OldSheet"). Name = "NewName"

Перейменуйте аркуш за індексним номером аркуша

Тут ми використовуємо 1, щоб перейменувати перший аркуш у робочій книзі.

1 Таблиці (1) .Name = "Нове ім'я"

Перейменуйте аркуш за кодовою назвою

Цей код перейменує аркуш, використовуючи його кодове ім'я VBA (обговорювалося вище):

1 Component.Name = "Нове ім'я"

Перевірте, чи існує назва аркуша

Ми створили функцію для перевірки наявності листа з певною назвою.

123456789101112 'Перевірте, чи діапазон існує на аркуші.'Залиште діапазон порожнім, щоб перевірити наявність листа'Входи:'WhatSheet - Назва рядка аркуша (колишній "Sheet1")'WhatRange (необов’язково, за замовчуванням = "A1") - Назва рядка діапазону (наприклад, "A1")Функція RangeExists (WhatSheet As String, Optional ByVal WhatRange As String = "A1") Як булеве значенняТест затемнення як діапазонУвімкнути Помилка Відновити ДаліВстановити тест = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Помилка Перейти до 0Функція завершення

Функція поверне TRUE, якщо Sheet існує, або FALSE, якщо його немає.

Використовуйте функцію так:

123 Sub Test_SheetExists ()MsgBox RangeExists ("налаштування")End Sub

Скопіюйте аркуш і перейменуйте

Цей приклад з нашої статті про копіювання аркушів.

Після копіювання та вставлення аркуша новостворений аркуш стає ActiveSheet. Тому, щоб перейменувати скопійований аркуш, просто скористайтеся ActiveSheet.Name:

12345678 Sub CopySheetRename2 ()Аркуші ("Аркуш1"). Скопіювати після: = Аркуші (Таблиць. Кількість)Увімкнути Помилка Відновити ДаліActiveSheet.Name = "Остання таблиця"Помилка Перейти до 0End Sub

Примітка: Ми додали обробку помилок, щоб уникнути помилок, якщо назва аркуша вже існує.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave