VBA Получить имя листа / Переименовать лист

В этом руководстве будет рассмотрено взаимодействие с именами листов в VBA.

Получить имя листа

Имена листов хранятся в Имя собственность Таблицы или Рабочие листы объект. Имя листа - это имя «вкладки», которое отображается в нижней части Excel:

Получить имя ActiveSheet

Это отобразит имя ActiveSheet в окне сообщения:

1 MsgBox ActiveSheet.Name

Получить имя листа по номеру индекса

Это отобразит имя первого рабочего листа в окне сообщения:

1 MsgBox Sheets (1) .Name

Это отобразит имя последнего рабочего листа в книге:

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 = "NewName"

Переименовать лист по имени

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

Переименовать лист по порядковому номеру листа

Здесь мы используем 1, чтобы переименовать первый лист в книге.

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

Переименовать лист по кодовому имени

Этот код переименует лист, используя его кодовое имя VBA (обсуждалось выше):

1 Component.Name = "NewName"

Проверьте, существует ли имя листа

Мы создали функцию, чтобы проверить, существует ли уже Лист с определенным именем.

123456789101112 'Проверить, существует ли диапазон на листе.'Оставьте поле пустым, чтобы проверить, существует ли лист'Входы:WhatSheet - строковое имя листа (например, Sheet1)WhatRange (Необязательно, по умолчанию = "A1") - строковое имя диапазона (например, "A1")Функция RangeExists (WhatSheet как строка, необязательно ByVal WhatRange As String = "A1") как логическоеТусклый тест как диапазонПри ошибке Возобновить ДалееУстановите test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Номер ошибки = 0При ошибке GoTo 0Конечная функция

Функция вернет ИСТИНА, если лист существует, или ЛОЖЬ, если нет.

Используйте функцию так:

123 Sub Test_SheetExists ()MsgBox RangeExists («настройка»)Конец подписки

Копировать лист и переименовать

Этот пример взят из нашей статьи о копировании листов.

После копирования и вставки листа вновь созданный лист становится ActiveSheet. Итак, чтобы переименовать скопированный лист, просто используйте ActiveSheet.Name:

12345678 Sub CopySheetRename2 ()Листы ("Sheet1"). Копировать после: = Sheets (Sheets.Count)При ошибке Возобновить ДалееActiveSheet.Name = "LastSheet"При ошибке GoTo 0Конец подписки

Примечание. Мы добавили обработку ошибок, чтобы избежать ошибок, если имя листа уже существует.

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

wave wave wave wave wave