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

Обновлено: 06.07.2024

Переименование листов в Excel выполняется на панели задач под листами, которые присутствуют, дважды щелкнув их, но в VBA мы используем метод свойств Sheets или Worksheet для переименования листа, синтаксис для переименования листа в VBA выглядит следующим образом Sheets («Имя старого листа»). Name = «Имя нового листа».

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

Мы все выполнили эту задачу по переименованию рабочего листа в соответствии с нашей личностью или в соответствии с нашим удобством, не так ли? Переименование — это не высшая математика, но если вы кодер VBA, то вы должны знать эту задачу переименования рабочего листа. Поскольку мы работаем с рабочими листами, используя их имена, важно знать важность имен рабочих листов в кодировании VBA Кодирование VBA Код VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic. (VBE) для выполнения конкретной задачи. Подробнее . В этой статье мы покажем вам, как переименовать лист с помощью кода Excel VBA.

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

Для изменения имени рабочего листа не требуются специальные навыки. Нам просто нужно указать, какое имя листа мы меняем, введя существующее имя листа.

Например, если мы хотим переименовать лист с именем «Лист 1», нам нужно вызвать лист по его имени с помощью объекта «Рабочий лист».

После упоминания имени листа нам нужно выбрать свойство «Имя», чтобы переименовать имя листа.

Теперь нам нужно установить свойство Name в соответствии с нашим желанием.

В следующих разделах статьи мы покажем вам все больше и больше примеров изменения или переименования рабочего листа.

VBA Rename Sheet

Примеры переименования листов в Excel VBA

Ниже приведены примеры листа переименования VBA.

Например, взгляните на приведенный ниже пример кода.

Код:

Пример переименования листа VBA 1

В приведенном выше коде я сначала объявил переменную как Worksheet.

Далее я установил ссылку на переменную как «Лист1», используя объект рабочих листов.

Теперь переменная «Ws» содержит ссылку на рабочий лист «Лист1».

Теперь, используя переменную «Ws», я переименовал рабочий лист в «Новый лист».

Этот код изменит имя «Лист1» на «Новый лист».

Пример переименования листа VBA 1-2

Причина, по которой мы получаем эту ошибку, заключается в том, что на предыдущем шаге мы уже изменили рабочий лист с именем «Лист1» на «Новый лист». Поскольку имени рабочего листа больше нет, «Лист1» недоступен, VBA выдает эту ошибку.

Мы можем получить все имена рабочих листов книги на одном листе. Приведенный ниже код извлечет все имена рабочих листов.

Код:

 Пример переименования листа VBA 2

Этот код извлечет все доступные имена рабочих листов на лист с именем «Основной лист».

Поскольку мы работаем с именами листов в кодировании, важно установить для них постоянные имена. Как мы устанавливаем для них постоянные имена?

Например, взгляните на приведенный ниже код.

Код:

VBA Rename Sheet Example 3

Приведенный выше код выберет Sheet1.

Если ваша рабочая книга используется многими людьми, если кто-то изменил имя рабочей таблицы, мы получим сообщение об ошибке Subscript Out of Range.

Чтобы избежать этого, мы можем установить для него постоянное имя. Чтобы установить постоянное имя, выполните следующие действия.

Шаг 1. Выберите лист, которому нужно задать постоянное имя, в редакторе Visual Basic.

Пример 3-1

Шаг 2. Нажмите клавишу F4, чтобы открыть окно свойств.

Пример 3-2

Шаг 3. В разделе «Имя» свойство «Измените имя на «Новое имя».

VBA Rename Sheet Example 3-3

Как видите, одно имя отображается как «Лист1», а в скобках мы видим новое имя как «Новый лист».

Теперь при кодировании мы будем использовать новое имя вместо фактического видимого имени.

Код:

Теперь вернитесь в окно рабочего листа. Мы по-прежнему можем видеть имя листа только как «Лист1».

Пример 3-5

Теперь я изменю название листа на "Продажи".

Пример 3-6

Если я запущу код с помощью клавиши F5 или вручную, он все равно выберет только лист с названием «Продажи». Поскольку мы дали ему постоянное имя, он по-прежнему будет выбирать только тот же лист.

Рекомендуемые статьи

Это руководство по переименованию листа VBA. Здесь мы узнаем, как переименовать лист Excel с помощью кода VBA, а также практические примеры и загружаемый шаблон. Ниже вы можете найти несколько полезных статей по Excel VBA –

Когда вы добавляете новый лист в книгу, у вас есть возможность дать ему имя. Но вы также можете переименовать его в любое время, используя свойство name рабочего листа. В этом руководстве мы рассмотрим различные способы переименования листа или нескольких листов с помощью кода VBA.

Шаги по переименованию листа с помощью кода VBA

  1. Сначала определите лист, который вы хотите переименовать, с помощью объекта рабочего листа.
  2. После этого вам нужно использовать (.Name) для доступа к свойству имени, которое вы хотите изменить.
  3. Затем введите знак равенства, чтобы указать VBA значение, которое вы хотите использовать для переименования листа.
  4. В конце введите имя листа, который вы хотите использовать.


Переименовать Activesheet

Если вы хотите переименовать активный лист, в этом случае вам не нужно определять имя листа, вместо этого вам нужно использовать объект ActiveSheet, который указывает VBA ссылаться на лист, который активен в данный момент. Вот код.


Примечание. Чтобы переименовать лист, его не нужно активировать.

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

Как вы знаете, каждый лист имеет номер в зависимости от его положения в книге. Допустим, вы хотите переименовать лист, который у вас есть на пятом номере, код будет такой.


Когда вы запускаете указанный выше макрос, он переименовывает лист, который находится под пятым номером.


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

Если вы попытаетесь переименовать несуществующий рабочий лист, VBA покажет вам ошибку, как показано ниже.


Решением этой проблемы является следующий код, использующий FOR EACH, который может пройтись по всем листам, чтобы найти лист, который вы определили, а затем переименовать этот лист.

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

Вы также можете переименовать лист, взяв значение из ячейки. Допустим, значение находится в ячейке A1.

Но допустим, вы хотите назвать несколько листов на основе значений в диапазоне ячеек. В этом случае вам понадобится код, подобный следующему.

Когда вы запускаете этот код VBA, сначала он проверяет, равны ли ячейки в диапазоне количеству листов, которые есть в вашей книге. После этого он проверит, все ли ячейки в указанном вами диапазоне имеют значения или нет. И, наконец, переименуйте все листы, используя эти имена.

Он проверит два условия, используя IF THEN ELSE, а затем переименует все листы.

Эта статья была написана Раддини Рахайю, Microsoft MVP.

Вот еженедельные отчеты о продажах. Например, в этом случае 15 человек. Нэнси, сообщает администратор, ей поручено суммировать все данные о продажах в один файл, где все продажи разделены на каждом листе. Для упрощения организации данных каждый лист, которому она дала имя, соответствует торговому названию на этом листе. Поначалу Нэнси чувствовала себя комфортно, но поскольку данных стало больше и требуется быстрая обработка, она была ошеломлена. Чтобы решить эту проблему, Нэнси хочет, чтобы листы с именами автоматически менялись в соответствии с торговым названием на каждом листе, не переименовывая его вручную.

Скриншот еженедельных отчетов о продажах.

Решения

Лучшее решение проблемы Нэнси — использование макросов. Этот макрос предназначен для каждого листа в этом файле независимо от количества листов. Название каждого листа изменится в соответствии с торговым наименованием, которое было определено в одном и том же месте на каждом листе.

Как выполнить

Первый шаг

Разработка форматов отчетов и указание ячейки, в которую будет помещено название продажи. В данном случае это ячейка J2. Этот формат отчета должен быть одинаковым на всех листах.

Оставьте имена листов по умолчанию (Лист1, Лист2, Лист3 и т. д.).

Снимок экрана, чтобы сохранить имена листов по умолчанию.

Последний шаг

Этап кодирования макроса

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

На вкладке "Разработчик" выберите Visual Basic в категории "Код" или нажмите комбинацию клавиш Alt+F11 на клавиатуре, чтобы отобразилось окно Visual Basic.

Снимок экрана для выбора Visual Basic в категории

На панели задач проекта щелкните (Имя рабочей книги), затем в меню "Вставка" выберите "Модуль" и напишите следующий скрипт:

На снимке экрана показаны шаги по написанию скрипта в книге Sales Report.xlsx.

Нажмите клавишу F5 на клавиатуре, если нет отладки, закройте окно Visual Basic и вернитесь в Excel. Если есть отладка, проверьте свой скрипт.

Вернитесь в Excel и посмотрите, что произойдет, если коды верны, теперь название каждого листа переименовывается в соответствии с существующим торговым названием на каждом листе.

Скриншот показывает, что имя каждого листа переименовано в соответствии с существующим торговым названием на каждом листе.

Вот и все. Надеюсь, с пользой.

Отказ от ответственности за стороннюю информацию

Обсуждаемые в этой статье сторонние продукты производятся компаниями, независимыми от Microsoft. Microsoft не дает никаких гарантий, подразумеваемых или иных, в отношении производительности или надежности этих продуктов.

В этой статье я покажу вам, как переименовать лист с помощью VBA в Excel. Вы научитесь переименовывать как отдельный лист, так и группу листов с помощью соответствующих примеров и иллюстраций.

Переименовать лист с помощью VBA в Excel (быстрый просмотр)

 Код VBA для переименования листа с помощью VBA в Excel

Загрузить практическую рабочую тетрадь

2 подходящих подхода к переименованию листа с помощью VBA в Excel (один и несколько листов)

Здесь у нас есть три листа с отчетом о продажах за три месяца компании Mars Group.

 Книга для переименования листа с помощью VBA в Excel

Рабочие листы называются Лист1, Лист2 и Лист3 соответственно.

Сегодня наша цель — переименовать листы с помощью приложения Visual Basic (VBA).

1. Переименуйте отдельный лист с помощью VBA в Excel

Давайте сначала попробуем переименовать один лист.

Переименовать отдельный лист с помощью VBA очень просто. Для этого можно использовать следующий код:

⧭ Код VBA:

⧪ Примечание. Этот код создает макрос с именем Rename_Sheet.

⧭ Пошаговая процедура запуска макроса:

⧪ Шаг 1. Открытие окна VBA

➤ Нажмите клавиши ALT+F11 на клавиатуре. Откроется окно VBA.

 Открытие окна VBA для переименования листа с помощью VBA в Excel

⧪ Шаг 2. Вставка нового модуля

➤ Перейдите на вкладку "Вставка" в окне VBA.

➤ Из доступных вариантов выберите Модуль.

< бр />

⧪ Шаг 3. Ввод кода VBA

➤ Откроется новое окно модуля под названием «Модуль 1».

➤ Вставьте указанный код VBA в открытый модуль.

 Код VBA для переименования листа с помощью VBA в Excel

⧪ Объяснение кода:

  • Подпрограмма Rename_Sheet() запускает новый макрос с именем Rename_Sheet.
  • Old_Name = InputBox("Имя рабочего листа, который вы хотите изменить:") просит пользователя ввести имя рабочего листа, который он/она хочет изменить.
  • New_Name = InputBox("Новое имя рабочего листа:") просит пользователя ввести новое имя рабочего листа.
  • Sheets(Old_Name).Name = New_Name изменяет старое имя рабочего листа на новое. Это самая важная строка.
  • End Sub объявляет конец макроса.

⧪ Шаг 4. Сохранение книги с поддержкой макросов

➤ Сохраните книгу как книгу Excel с поддержкой макросов.

 Сохранение книги для переименования листа с помощью VBA в Excel

⧪ Шаг 5. Запуск макроса

➤ Затем вернитесь к любому из своих рабочих листов и нажмите клавиши ALT+F8 на клавиатуре.

➤ Откроется диалоговое окно «Макрос». Выберите «Переименовать_лист» (имя макроса) и нажмите «Выполнить».

 Запуск макроса для переименования листа с помощью VBA в Excel

⧪ Шаг 6: Ввод входных данных

➤ Вы получите два поля ввода. В первом поле вам будет предложено ввести имя старого листа, который вы хотите изменить.

Давайте введем Sheet1.

< бр />

➤ Нажмите «ОК». Во втором поле вас попросят ввести новое имя рабочего листа.

Давайте введем январь.

 Ввод данных для переименования листа с помощью VBA в Excel

⧪ Шаг 7: Окончательный результат!

➤ Затем нажмите "ОК".

➤ Вы обнаружите, что название выбранного вами листа красиво изменено на желаемое имя (в этом примере Лист1 на Январь).

< бр />

⧭ Что нужно помнить:

  • Изюминкой кода является строка Sheets(Old_Name).Name = New_Name .
  • Он изменяет любой рабочий лист с именем, хранящимся в переменной Old_Name, на новое имя, хранящееся в переменной New_Name.
  • Вместо использования переменных вы можете напрямую указать имена рабочих листов в коде.
  • Например, Sheets("Sheet1″).Name="January" также подойдет.
  • Но это уменьшило бы гибкость кода. Каждый раз, когда вы хотите изменить другой лист, вы должны пойти и изменить имя внутри кода.
  • Вот почему мы оставили его на усмотрение пользователей с помощью двух полей ввода. Теперь вы можете изменить любой рабочий лист по своему желанию в любое время.

2. Переименовать несколько листов с помощью VBA в Excel

В предыдущем разделе мы создали макрос для переименования имени одного листа книги.

Теперь мы разработаем макрос для переименования нескольких листов с помощью VBA в книге.

Для этой цели можно использовать следующий код VBA:

⧭ Код VBA:

⧪ Примечание. Этот код создает макрос с именем Rename_Multiple_Sheets.

⧭ Пошаговая процедура запуска макроса:

⧪ Шаг 1: Начальные шаги

➤ Выполните шаги 1–4 из предыдущего метода, чтобы открыть окно VBA, вставить новый модуль, ввести код VBA и, наконец, сохранить книгу с поддержкой макросов.

 Код VBA для переименования листа с помощью VBA в Excel

⧪ Шаг 2. Запуск макроса

➤ Вернитесь к любому рабочему листу и нажмите клавиши ALT+F8 на клавиатуре.

➤ В доступных макросах выберите Rename_Multiple_Sheets и нажмите «Выполнить».

 Запуск макроса для переименования листа с помощью VBA в Excel

⧪ Шаг 3. Ввод входных данных

➤ Вы получите несколько полей ввода. Первый попросит вас ввести название листов, которые нужно изменить.

Введите название листов, которые вы хотите изменить. Разделяйте их запятыми.

Например, чтобы изменить Лист1 и Лист3, введите Лист1,Лист3 (без пробелов после запятых).

Или, чтобы изменить все рабочие листы, введите ВСЕ.

Здесь я хочу изменить имена всех рабочих листов. Итак, я ввел ВСЕ.

< бр />

➤ Второе поле ввода спросит вас, изменяете ли вы имена листов последовательно или случайным образом.

Последовательно означает, что вы можете изменить их на ряд дней, таких как понедельник, вторник, среда и т. д.

Или в серии месяцев, таких как январь, февраль, март и т. д.

Или в ряду чисел, таких как 10, 11, 12 и т. д.

Также в серии чисел, связанных префиксом, например Day1, Day2, Day3 и т. д.

Или в ряду алфавитов, таких как A, B, C и т. д.

Также в серии алфавитов, связанных префиксом, например ProductA, ProductB, ProductC и т. д.

И случайным образом означает, что вы можете изменить имена на любые случайные значения по вашему желанию.

Введите 1 для последовательного способа.

И введите 2 случайным образом.

Я хочу, чтобы они переименовывались последовательно, поэтому я ввел 1.

 Ввод данных для переименования листа с помощью VBA в Excel

➤ Если вы выберете последовательный способ, в третьем поле ввода будет запрошен ряд значений из нескольких рядов.

Введите 1 для набора цифр (1, 2, 3 и т. д.)

Или введите 2 для ряда алфавитов (A, B, C и т. д.)

Или введите 3 для ряда дней (воскресенье, понедельник, вторник и т. д.)

Введите 4 для серии дней недели (пятница, понедельник, вторник и т. д.)

Или введите 5 для ряда месяцев (январь, февраль, март и т. д.)

Мне нужна серия месяцев. Итак, я ввел 5.

 Ввод данных для переименования листа с помощью VBA в Excel

⧪ Дополнительно: если бы вы выбрали случайный способ, это поле ввода попросит вас ввести случайные новые имена.

Вы должны были ввести их через запятую.

Например, Вашингтон,Нью-Йорк,Лос-Анджелес (без пробела после запятой)

< бр />

➤ В следующем поле ввода будет задано первое значение, с которого вы хотите начать.

Если вы выберете Numbers, вам будет предложено ввести первое число.

Для алфавитов вам будет предложено ввести первую букву.

Если вы выберете «Дни», вам будет предложено переименовать первый день.

Для будних дней вам будет задан первый день недели.

А в поле "Месяцы" у вас будет указан первый месяц.

Я выбрал "Месяцы", поэтому мне нужно начать с первого месяца.

Я хочу начать с января. Итак, я вступил в январь.

Вы вводите его в соответствии с вашими потребностями.

 Вставка ввода для переименования листа с помощью VBA в Excel

⧪ Дополнительно: если бы вы выбрали ряд цифр, у вас было бы еще одно поле ввода между ними, которое запросило бы у вас префикс.

Префикс — это то, что вы хотите добавить перед цифрами.

Например, если вы хотите переименовать листы в Product1, Product2, Product3 таким образом, используйте префикс Product.

И если вам не нужен префикс, а просто ряд цифр, таких как 1, 2, 3 и т. д., оставьте это поле пустым.

 Встраивание ввода для переименования листа с помощью VBA в Excel

➤ В последнем поле ввода будет запрашиваться приращение.

Приращение — это то, на что увеличивается каждое значение в серии.

Например, в ряду 10, 13, 16 и т. д. шаг равен 3.

В ряду за апрель, июнь, август, октябрь и т. д. шаг равен 2.

Вот хочу серию январь, февраль, март. Итак, мой шаг равен 1.

Вы вводите свой.

< бр />

⧪ Шаг 4: Окончательный результат!

➤ Затем нажмите "ОК".

➤ Вы обнаружите, что названия выбранных вами листов красиво изменились в соответствии с вашими желаемыми именами (в данном примере это январь, февраль, март).

 Вывод для переименования листа с помощью VBA в Excel

⧭ Что нужно помнить:

  • Используя этот код, вы можете переименовать любое количество рабочих листов в своей книге в желаемые имена (случайные имена или последовательности).
  • Например, здесь я изменил 7 рабочих листов на имена Item2, Item 4, Item6, Item8, Item10, Item12 и Item14.

< бр />

Заключение

Используя эти методы, вы можете довольно красиво переименовать один лист или несколько листов в своей книге с помощью VBA. У вас есть вопросы? Не стесняйтесь спрашивать нас.

Читайте также: