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

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

  • автор:

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

По умолчанию в Excel листам присваиваются названия «Лист1», «Лист2», «Лист3» и т. д., но их можно легко переименовать.

Изображение ярлычков листа Excel

Три способа переименования листа

  1. Дважды щелкните ярлычок листа и введите новое имя.
  2. Щелкните ярлычок листа правой кнопкой мыши, выберите команду Переименовать и введите новое имя.
  3. Нажмите клавиши ALT+H, O, R и введите новое имя.

Важно: Имена листов не могут:

  • Быть пустым .
  • Содержать более 31 знака.
  • Содержать следующие символы: / \ ? * : [ ] Например, 02/17/2016 нельзя использовать в качестве имени листа, а 02-17-2016 — можно.
  • Начинаться или заканчиваться апострофом (‘), при этом апострофы использоваться между символами.
  • Называться «History». Это зарезервированное слово, которое Excel использует для внутренних целей.

Переименование книги

Если вы хотите переименовать книгу, найдите ее в проводнике, нажмите клавишу F2 или щелкните ее правой кнопкой мыши и выберите «Переименовать», а затем введите новое имя.

Если книга уже открыта, щелкните Файл > Сохранить как, чтобы сохранить ее под другим именем. При этом будет создана копия существующей книги.

Дополнительные сведения

Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

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

Страницы: 1

Переименование листов через VBA

Пользователь

Сообщений: 257 Регистрация: 02.06.2013

03.11.2016 12:06:39

Здравствуйте!
Просьба помочь через VBA переименовать листы, так как я из этих листов макросом затем подтягиваю данные в отчет, но так как листы каждый месяц переименовываются, с подтягиванием данных проблемы.
1 вопрос: У меня имеется 5 листов.
Задача:
— переименовать 3 листа через VBA: «01», «AA 02», «BB 02» на названия, указанные в ячейках F2:H2 соответственно. Названия этих листов меняются каждый месяц на 1 цифру.
Как я понимаю, необходимо сначала подтянуть текущие наименования этих 3 листов, допустим в ячейки F1:H1, а затем макросом их переименовать.
— лист «Исходный» и «Формулы» не переименовываются, остаются без изменений, каждый месяц меняются названия только этих 3-х листов.
Я нашел на одном из формуром код, который подтягивает название активного листа в заданную ячейку:
If ActiveSheet.name <> «Формулы» Then Sheets(«Формулы»).Range(«F1») = ActiveSheet.name
А мне необходимо, чтобы подтягивал именно из 3-х указанных листов. Может быть привязку сделать к их порядковому номеру? Листы для переименования находятс всегда со 2-го по 4-й, их количество неизменно.
2 вопрос: как затем перейти на лист, название которого указано, допустим, в ячейке F2?
Спасибо.

Прикрепленные файлы

  • Шаблон.xlsx (13.97 КБ)

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

есть кнопка, при нажатии на которую должен создаваться новый лист,переименовываться и т.д.
Макрос записывался мышкой:добавляю новый лист, на котором сначала появляется имя Лист3, нажимаю на него и переименовываю..
в VBA это выглядит так:
Sheets.Add
Sheets(«Лист3»).Select
Sheets(«Лист3»).Name = «Отчет на 2008 год»
..
Потом чтобы проверить правильность, я удаляю созданный мной лист, и запускаю макрос. Программа прерывается на строке Sheets(«Лист3»).Select, потому что добавленному листу программа дала начальное имя Лист4, а не Лист3.. при следующей попытке уже Лист5.
можно ли выделить и переименовать лист без указания его нынешнего имени? или добавить лист уже с заданным именем? или считать в какую-нибудь переменную имя этого листа.

Макрос для копирования и переименования листов Excel

В этом примере детально описана и разобрана автоматизация копирования и переименования листов Excel с исходными кодами макросов.

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

Представьте ситуацию: Вы готовите планы работ для сотрудников определенного отдела фирмы. Пример таблицы плана выглядит так:

Шаблон плана.

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

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

Техническое Задание (ТЗ) для макроса заключается в следующем. После выделения ячеек, которые содержат названия для листов нужно скопировать лист с шаблоном для планов работ ровно столько сколько будет выделенных ячеек и ввести соответствующие названия в ярлычки.

Примечание. В программировании, как и в многих других технических сферах деятельности (например, в бизнес-планировании) – без ТЗ результат ХЗ! Автор цитаты известный бизнесмен и предприниматель Дмитрий Потапенко.

Для этого сначала откройте редактор кода макроса: «РАЗРАБОТЧИК»-«Код»-«Visual Basic» (ALT+F11):

РАЗРАБОТЧИК.

В редакторе создайте новый модуль выбрав инструмент «Insert»-«Module» и введите в него следующий код макроса:

Sub PlanRabot()
Dim diapaz As Range
Dim i As Long
Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox( «Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!» , Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
Next
End Sub

Модуль с кодом.

Теперь если вы хотите скопировать лист шаблона для заполнения плана работ и создать копии плана для каждого сотрудника имена с фамилиями которых будут присвоены названиям листа, то перейдите на исходный лист с шаблоном плана работ и выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«PlanRabot»-«Выполнить». Сразу же после запуска макроса появиться диалоговое окно:

Окно с полем ввода.

Теперь перейдите на лист «Имена и Фамилии» и выделите в нем диапазон ячеек, которые содержат имена и фамилии сотрудников. И нажмите на кнопку ОК.

Лист Имена и Фамилии.

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

Описание исходного кода макроса для копирования и переименования листов

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

Перед вызовом инструкции открытия диалогового окна отключается контроль ошибок. А после создания экземпляра объекта Range в переменной diapaz, снова включается контроль ошибок. Сделано так потому, что нажатие на кнопку «Отмена» в диалоговом окне вызовет ошибку выполнения макроса. Если же отключить обработку ошибок то, когда пользователь нажмет на кнопку «Отмена», тогда просто не будут выполняться никакие инструкции макроса.

В случаи если пользователь заполнил поле ввода и нажал на кнопку «ОК», тогда в переменную list присваиваться текущий рабочий лист. После чего внутри цикла он копируется ровно столько раз, сколько было выделено ячеек.

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

Если необходимо сделать так чтобы соответственные имена и фамилии сотрудников были не только на ярлычках листов, а и в значении ячейки B1 в каждом листе, тогда перед строкой конца цикла Next добавьте следующую строку кода:

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

Версия кода макроса с дополнительной строкой кода выглядит так:

Sub PlanRabot()
Dim diapaz As Range
Dim i As Long
Dim list As Worksheet
On Error Resume Next
Set diapaz = Application.InputBox( «Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!» , Type:=8)
On Error GoTo 0
If diapaz Is Nothing Then Exit Sub
Set list = ActiveSheet
For i = 1 To diapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
ActiveSheet.Range( «B1» ) = diapaz(i)
Next
End Sub

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

Пример вставки имен.

Таким образом, благодаря макросу в пару кликов мышкой можно выполнить большой объем работы. В данном примере скопировано копий только для 8-ми сотрудников. Особенно ощутимую пользу приносит данный макрос при необходимости копировать большое количество листов. Ведь в некоторых фирмах количество сотрудников, заполняющих планы работы, может превышать 100 человек и более.

  • Excel Formula Examples
  • Создать таблицу
  • Форматирование
  • Функции Excel
  • Формулы и диапазоны
  • Фильтр и сортировка
  • Диаграммы и графики
  • Сводные таблицы
  • Печать документов
  • Базы данных и XML
  • Возможности Excel
  • Настройки параметры
  • Уроки Excel
  • Макросы VBA
  • Скачать примеры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *