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

Типичная задача. Есть много листов названия которых нас не устраивают. Мы хотим их переименовать. Делать это вручную очень долго.

C надстройкой ЁXCEL это сделать легко.

Перейдите во вкладку «ЁXCEL» главного меню, нажмите кнопку «Листы», в выпавшем списке выберите пункт «Получить список листов книги»:

В открывшемся диалоговом окне установите переключатель в положение «Простой список листов (все листы)» и нажмите «ОК»:

Программа создаст в активной книге новый лист на который выведет названия всех листов:

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

Исключите из списка листы, которые вы не хотите переименовывать, а напротив оставшихся введите новые названия, чтобы получилось так:

kak-bystro-pereimenovat-listy_2.png

Выделите диапазон со старыми и новыми названиями листов, перейдите во вкладку «ЁXCEL» главного меню, нажмите кнопку «Листы» и выберите команду «Переименовать листы из списка»:

kak-bystro-pereimenovat-listy_3.png

В открывшемся диалоговом окне нажмите «ОК»:

kak-bystro-pereimenovat-listy_4.png

Указанные листы будут переименованы.

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

Sub Main()
    Dim wsSh As Worksheet
    Dim i As Integer
    i = 2
    On Error Resume Next
    For Each wsSh In ThisWorkbook.Sheets
        If wsSh.Name = Sheets("Rename").Cells(i, 1).Value Then
            If Len(Sheets("Rename").Cells(i, 3).Value) > 0 Then
                wsSh.Name = Sheets("Rename").Cells(i, 3).Value
                Else
                wsSh.Name = Sheets("Rename").Cells(i, 4).Value
            End If
            i = i + 1
        End If
    Next
End Sub

Обычно для переименования листов в Excel мы можем быстро дважды щелкнуть вкладку листа или щелкнуть правой кнопкой мыши вкладку листа, чтобы выбрать команду «Переименовать» для переименования листов. Это очень удобно, чтобы переименовать один или два листа в Excel, но если мы хотим переименовать несколько листов в рамках одной операции, как мы можем это сделать?

Использование команды Rename для переименования листов
Использование кода VBA для переименования нескольких листов
Использование удобного инструмента для удобного переименования нескольких листов


Использование команды Rename для переименования листов

Мы можем быстро переименовать листы в Excel с помощью Переименовывать команду в соответствии со следующими процедурами:

Щелкните правой кнопкой мыши вкладку листа, который вы хотите переименовать, и выберите Переименовывать из контекстного меню. Или дважды щелкните вкладку листа, чтобы переименовать лист. Затем введите новое имя и нажмите Enter ключ, чтобы переименовать его, см. снимок экрана:

С этой Переименовывать , вы можете переименовать только один лист за раз, чтобы переименовать несколько листов, повторите указанные выше операции.


Наблюдения и советы этой статьи мы подготовили на основании опыта команды Переименовать несколько листов полезности Kutools for Excel может помочь вам легко переименовать несколько листов одновременно в Excel.
Скачать сейчас! (30-дневная бесплатная трасса)


Использование кода VBA для переименования нескольких листов

Здесь я представлю вам два кода VBA для переименования нескольких листов.

1. Код VBA для одновременного переименования нескольких листов по желаемому имени.

Используя следующий код VBA, вы можете быстро переименовать все листы текущей книги с тем же префиксом в их именах листов, например: KTE-order1, KTE-order 2 и KTE-order 3…

1. Нажмите на Застройщик > Визуальный Бейсики нажмите Вставить > Модули в Приложение Microsoft Visual Basic для Windows.

2. Скопируйте и вставьте следующий код в Модули

VBA: переименуйте все листы, введя определенное имя

Sub ChangeWorkSheetName()
'Updateby20140624
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
newName = Application.InputBox("Name", xTitleId, "", Type:=2)
For i = 1 To Application.Sheets.Count
    Application.Sheets(i).Name = newName & i
Next
End Sub

3.  Нажмите документ переименовать несколько листов-4 кнопку, чтобы выполнить код, и введите желаемое имя во всплывающем диалоговом окне. см. скриншоты:

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

4. Нажмите OK. Затем вы увидите, что все листы переименованы.

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

2. Код VBA для переименования нескольких листов по определенному значению ячейки на каждом листе активной книги.

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

1.  Укажите ячейку, которая будет содержать имя рабочего листа на каждом листе, и введите в нее имя рабочего листа. В этом примере я введу имя рабочего листа в ячейку A1 на каждом листе.

2.  Нажмите Застройщик > Визуальный Бейсики нажмите Вставить > Модули в Приложение Microsoft Visual Basic Окон.

3.  Скопируйте и вставьте следующий код в модуль.

VBA: переименовать листы по определенному содержимому ячейки

Sub RenameTabs()
'Updateby20140624
 For x = 1 To Sheets.Count
 If Worksheets(x).Range("A1").Value <> "" Then
 Sheets(x).Name = Worksheets(x).Range("A1").Value
 End If
 Next
 End Sub

4.  Нажмите документ переименовать несколько листов-4 кнопку для выполнения кода. Все рабочие листы переименовываются на основе содержимого ячеек A1.

Ноты:

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

2. Если конкретная ячейка не имеет содержимого, то рабочий лист этой ячейки не будет переименован.


Использование удобного инструмента для удобного переименования нескольких листов

Наблюдения и советы этой статьи мы подготовили на основании опыта команды Переименовать несколько листов инструмент Kutools for Excel очень удобен для переименования всех листов или выбранных конкретных листов текущей книги.

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

1. Переименуйте несколько рабочих листов с определенными данными, используя Kutools for Excel

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

1.  Нажмите Кутулс Плюс > Рабочий лист > Переименовать листы. Смотрите скриншот:

2. Задайте настройки в Переименовать несколько листов диалоговое окно. Смотрите скриншот:

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

1. Выберите листы, которые вы хотите переименовать, из Worksheets .

2. Выберите один тип, листы которого вы хотите переименовать в Параметры переименования.

3. Введите конкретное значение в Из поля ввода.

3. Затем нажмите OK. Вы получите следующие результаты:

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

2. Переименуйте несколько рабочих листов со значениями ячеек, используя Kutools for Excel

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

1. Примените эту утилиту, нажав Предприятие > Рабочий лист > Переименовать несколько листов . И в Переименовать несколько листов диалоговом окне укажите следующие параметры:

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

1. Выберите листы, которые вы хотите переименовать, из Worksheets .

2. Выберите один тип, листы которого вы хотите переименовать в Параметры переименования.

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

3.  Затем нажмите OK. Вы получите следующий результат:

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

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

Чтобы переименовать рабочий лист с определенным значением ячейки на каждом листе, Kutools for Excel‘s Переименовать несколько листов также могу оказать вам услугу, пожалуйста, сделайте следующее:

1. Примените эту утилиту, нажав Предприятие > Рабочий лист > Переименовать несколько листов . И в Переименовать несколько листов диалоговом окне укажите следующие параметры:

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

1. Выберите листы, которые вы хотите переименовать, из Worksheets .

2. Выберите один тип, листы которого вы хотите переименовать в Параметры переименования.

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

2. Затем нажмите Ok кнопки, имена рабочих листов были переименованы с конкретным значением ячейки на каждом листе, см. снимок экрана:

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

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Демонстрация: переименуйте несколько рабочих листов с помощью Kutools for Excel


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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

Переименование листов из списка – инструмент надстройки Excel Tools VBA, для массового переименования листов в рабочей книге MS Excel по списку из диапазона ячеек

Переименование листов из списка - инструмент для переименования листов из списка в рабочей книге Excel, инструмент надстройки Excel Tools VBA

Инструмент переименование листов из списка

Содержание

  1. Требования к именам листов
  2. Процесс переименования
  3. контекстное меню ярлыка
  4. двойной щелчок по ярлыку
  5. Как переименовать лист рабочей книги при помощи мыши?
  6. Вставка нового листа в Excel
  7. Обращение к рабочим листам
  8. Скрытие и отображение листов
  9. Описание задачи
  10. Как копировать и переименовать лист Excel макросом
  11. Перемещение/копирование листов в Excel
  12. Как сменить название листа
  13. Как изменить имя листа при помощи контекстного меню?
  14. Удаление листа в Excel

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

К именам листов рабочей книги предъявляется несколько ограничений:

1) длина введенного имени не должна превышать 31-го знака;

2) имя листа не должно содержать ни одного из следующих знаков: двоеточи” ( : ), косая черта ( / ), вопросительный знак ( ? ), звездочка ( * ) и квадратные скобки ( [ ] );

3) имя не должно быть пустым.

Процесс переименования

Процедура переименования листов в Экселе в целом интуитивно понятна. Тем не менее, у некоторых пользователей, которые только начинают освоение программы, возникают определенные трудности.

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

  • В наименовании не должны присутствовать такие символы: «?», «/», «», «:», «*», «[]»;
  • Название не может быть пустым;
  • Общая длина наименования не должна превышать 31 знак.

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

контекстное меню ярлыка

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

  1. Кликаем правой кнопкой по ярлыку, над которым хотим произвести манипуляцию. В контекстном меню выбираем пункт «Переименовать».
  2. Как видим, после этого действия поле с названием ярлыка стало активным. Просто набираем туда с клавиатуры любое подходящее по контексту наименование.
  3. Жмем на клавишу Enter. После этого листу будет присвоено новое имя.

двойной щелчок по ярлыку

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

Как переименовать лист рабочей книги при помощи мыши?

Для переименования листа необходимо:

1) в окне открытой книги дважды щелкнуть левой кнопкой мыши на ярлычке нужного листа;

2) набрать нужное имя листа, соблюдая требования к листам, изложенные выше;

3) нажать клавишу Enter на клавиатуре для закрепления введенного имени.

  1. Чтобы вставить новый рабочий лист, найдите и нажмите кнопку Новый лист.
  2. Откроется новый пустой лист.

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

Обращение к рабочим листам

Рабочий лист (Worksheet) принадлежит коллекции всех рабочих листов (Worksheets) книги Excel. Обратиться к листу можно как к элементу коллекции и, напрямую, по его уникальному имени.

Откройте редактор VBA и обратите внимание на вашу книгу в проводнике, где уникальные имена листов указаны без скобок, а в скобках – имена листов, отображаемые на ярлычках в открытой книге Excel. Уникальные имена листов отсортированы по алфавиту и их расположение по порядку не будет соответствовать их индексам (номерам), если листы перемещались по отношению друг к другу. Индексы листов смотрите по порядку расположения ярлычков в открытой книге. Переместили листы – изменились их индексы.

Обращение к рабочему листу в коде VBA Excel:

‘По уникальному имени

УникИмяЛиста

‘По индексу

Worksheets(N)

‘По имени листа на ярлычке

Worksheets(“Имя листа”)

  • УникИмяЛиста – уникальное имя листа, отображаемое в проводнике редактора VBA без скобок, с помощью кода VBA изменить его невозможно.
  • N – индекс листа от 1 до количества всех листов в книге, соответствует порядковому номеру ярлычка этого листа в открытой книге Excel.
  • Имя листа – имя листа, отображаемое в проводнике редактора VBA в скобках, с помощью кода VBA изменить его можно.

Количество листов в рабочей книге Excel определяется так:

‘В активной книге

Worksheets.Count

‘В любой открытой книге,

‘например, в «Книга1.xlsm»

Workbooks(“Книга1.xlsm”).Worksheets.Count

Скрытие и отображение листов

Для скрытия и отображения рабочих листов в VBA Excel используется свойство Worksheet.Visible со следующим синтаксисом:

expression.Visible

где expression – переменная, представляющая собой объект Worksheet. Свойству Worksheet.Visible могут присваиваться следующие значения:

  • False – лист становится невидимым, но он будет присутствовать в списке скрытых листов, и пользователь сможет его отобразить с помощью инструментов рабочей книги Excel.
  • xlVeryHidden – лист становится супер невидимым и его не будет в списке скрытых листов, пользователь не сможет его отобразить. Актуально для Excel 2003-2016.
  • True – лист становится видимым.

Аналоги присваиваемых значений:

  • False = xlHidden = xlSheetHidden = 1
  • xlVeryHidden = xlSheetVeryHidden = 2
  • True = xlSheetVisible = -1 (константа xlVisible вызывает ошибку)

Примеры:

Лист1.Visible = xlSheetHidden

Лист2.Visible = 1

Worksheets(Worksheets.Count).Visible = xlVeryHidden

Worksheets(“МойЛист”).Visible = True

Как создать, скопировать, переместить или удалить рабочий лист с помощью кода VBA Excel, смотрите в этой статье.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Описание задачи

Как правило, когда мы долго работаем с большим количеством листов, возникает потребность в их переименовании. Переименовать листы поштучно достаточно просто дважды кликнув по вкладке и введя новое название. Однако, если листов десятки, то это утомительно и отнимает время. Гораздо удобнее использовать надстройку VBA-Excel.

C помощью нее переименовать все листы в книге можно следующим образом:

  1. Нужно подготовить два списка. Первый с перечнем наименований текущих листов. Второй – с новыми наименованиями листов. Проще всего сделать два столбца в первом старые наименования и рядом список, как нужно переименовать.
  2. Перейдите на вкладку VBA-Excel (она будет доступна после установки программы).
  3. В меню Диспетчеры найдите пункт Диспетчер листов.
  4. В диспетчере выберите команду Переименовать
  5. В диалоговом окне Переименовать листы из выделенного списка укажите диапазон со старыми наименованиями листов и аналогичный диапазон, содержащий новые названия, которые должны получиться в процессе переименования.

    При необходимости можно заполнить диапазон текущими названиями листов нажав кнопку Заполнить.
  6. Нажмите кнопку Переименовать.

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

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

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

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

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

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

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

SubPlanRabot()
DimdiapazAsRange
DimiAs Long
DimlistAsWorksheet
On Error Resume Next
Setdiapaz = Application.InputBox("Пожалуйста, выделите диапазон ячеек, который содержит названия для новых листов!", Type:=8)
On Error GoTo0
IfdiapazIs Nothing Then Exit Sub
Setlist = ActiveSheet
Fori = 1Todiapaz.Count
list.Copy after:=ActiveSheet
ActiveSheet.Name = Left(diapaz(i), 31)
Next
End Sub

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

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

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

Перемещение/копирование листов в Excel

Перемещать листы в Excel с помощью мышки очень просто: возьмите ярлычок листа и, двигаясь по горизонтали, перетащите его на новое место.

Если во время этой операции вы нажмете и будете удерживать клавишу [Ctrl], то лист… правильно, скопируется! (Вспомните, как мы копировали файлы в WINDOWS ). То же самое можно делать с группой листов.

Эту же операцию можно выполнить в Excel с помощью команды контекстного меню листа Переместить/скопировать или команды Правка/Переместить/скопировать лист . Ими особенно удобно пользоваться, если вы хотите скопировать или переместить лист в другую книгу.

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

Задание для самостоятельной работы:

В книге Мои таблицы. xls переместите лист Население Земли в конец книги, верните его на прежнее место, сделайте копию листа в этой же книге, скопируйте его в новую книгу.

Создайте пустой файл Мои таблицы-копии.xls ( для этого новую рабочую книгу сохраните под этим названием в каталоге C:ST). Скопируйте в него лист Население Земли.

Как сменить название листа

При создании новой книги Excel рабочие листы по умолчанию носят имя Лист1, Лист2 и т.д.

Как правило, листы переименовывают в более подходящие имена, в зависимости от его содержания. Это может быть и «Отчет» и «График» и т.д. Чтобы переименовать название листа, дважды кликните на ярлыке данного листа.

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

НО!

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

2. В названии листа нельзя прописывать следующие символы:

* (звездочка).

: (двоеточие);

/ (косая черта);

[ ] (квадратные скобки);

(кавычка);

< > угловые скобки);

? (знак вопроса);

(обратная косая черта);

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

Как изменить имя листа при помощи контекстного меню?

Чтобы переименовать лист при помощи контекстного меню, нужно:

1) в окне открытой книги один раз кликнуть правой кнопкой мыши на ярлыке нужного листа;

2) в контекстном меню выбрать пункт “Переименовать”;

3) набрать новое имя листа в соответствии с требованиями к именам листов;

4) нажать клавишу Enter на клавиатуре, чтобы закрепить новое имя.

Удаление листа в Excel

  1. Щелкните правой кнопкой мыши по ярлычку листа, который необходимо удалить, и из контекстного меню выберите пункт Удалить.
  2. Лист будет удален.

Удаление листа из рабочей книги нельзя отменить. Это одно из немногих необратимых действий в Excel. Хорошенько подумайте, прежде чем удалять их.

Если требуется ограничить изменения, которые разрешается вносить в текущий лист, Вы можете его защитить. Для этого щелкните правой кнопкой мыши по ярлычку листа и из контекстного меню выберите пункт Защитить лист.

Источники

  • http://macros-vba.ru/nadstrojki/excel/246-kak-pereimenovat-list-v-rabochej-knige-excel-pereimenovanie-listov
  • https://lumpics.ru/how-to-rename-worksheet-in-excel/
  • https://office-guru.ru/excel/pereimenovanie-vstavka-i-udalenie-lista-v-excel-24.html
  • https://vremya-ne-zhdet.ru/vba-excel/rabochiy-list-obrashcheniye-pereimenovaniye-skrytiye/
  • https://micro-solution.ru/projects/addin_vba-excel/sheets-rename
  • https://exceltable.com/vba-macros/makros-pereimenovat-listy
  • https://best-exam.ru/pereimenovanie-listov-v-excel/
  • https://zen.yandex.ru/media/topnews/urok-excel–32-kak-izmenit-nazvanie-i-cvet-iarlyka-rabochego-lista-5b2b7d5bcb0ffb00a9d43087

В этом примере детально описана и разобрана автоматизация копирования и переименования листов 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 добавьте следующую строку кода:

ActiveSheet.Range(«B1») = diapaz(i)

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

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

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

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

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

Читайте также: Макрос для копирования листов Excel с заданным количеством копий.

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

0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

1

Необходимо переименовать большое количество листов

14.05.2015, 11:20. Показов 3049. Ответов 10


Студворк — интернет-сервис помощи студентам

Всем привет. Проблема в следующем: есть большое кол-во листов в книге. И есть названия этих листов типа 01-05-15К или др. буква. Название берется из названия акта (можно присвоить из ячейки). Можете умные товарищи подсказать, какой макрос написать для автоматического переименования этих листов. И корректировке при добавлении новых. А то накосячила и придется 20 листов вручную переименовывать. Заранее спасибо.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

14.05.2015, 11:20

Ответы с готовыми решениями:

Переименовать большое количество картинок
В папке 50.000 картинок, а мне нужно 20.000
Есть файл с названиями этих 20.000 картинок, как или…

Необходимо отобразить в Delphi большое количество объектов
Необходимо отобразить в Delphi большое количество объектов, как на карте. Необходима возможность…

Необходимо заменить большое количество знаков в документе
Здравствуйте, мне необходимо заменить большое количество знаков в документе, только при условии не…

Определить, сколько можно купить тетрадей по 12 листов, по 48 листов и по 96 листов, зная цену
Определить, сколько можно купить тетрадей по 12 листов, по 48 листов и по 96 листов,
если цена…

10

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

14.05.2015, 11:41

2

Цитата
Сообщение от varenice
Посмотреть сообщение

(можно присвоить из ячейки)

из какой? ячейка на всех листах? одна и та же?



1



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

14.05.2015, 12:51

 [ТС]

3

Да, на каждом листе ячейка одна и та же точнее их две. Они объединены. Ячейка С1



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

14.05.2015, 13:18

4

Лучший ответ Сообщение было отмечено varenice как решение

Решение

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

Visual Basic
1
2
3
4
5
6
7
Sub Update_Sheet_Name()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
    Sheets(i).Name = Sheets(i).Range("C1").Value
Next
Application.ScreenUpdating = True
End Sub

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



1



varenice

0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

14.05.2015, 13:30

 [ТС]

5

Выдает ошибку может мне приложить файл с который необходимо изменить? Или набросать быстренько пример?

Visual Basic
1
2
3
4
5
6
7
Sub Update_Sheet_Name()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).name = Sheets(i).Range("C1").Value (в этой строке)
Next
Application.ScreenUpdating = True
End Sub



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

14.05.2015, 13:33

6

Цитата
Сообщение от varenice
Посмотреть сообщение

Или набросать быстренько пример?

может это стоит Вам сделать



1



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

14.05.2015, 13:36

7

Лучший ответ Сообщение было отмечено varenice как решение

Решение

Цитата
Сообщение от varenice
Посмотреть сообщение

может мне приложить файл который необходимо изменить

если там ни чего конфиденциального то приложите.
Fairuza, это же вопрос.



1



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

14.05.2015, 13:37

 [ТС]

8

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



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,930

14.05.2015, 13:56

9

Лучший ответ Сообщение было отмечено varenice как решение

Решение

Цитата
Сообщение от varenice
Посмотреть сообщение

переименовывать ячейку С1 при добавлении или удалении листа чтобы данные не сбивались

здесь моих знания маловато.
если применять макрос для примера естественно вылезет ошибка начиная с пятого листа т.к. Имя листа такого уже есть. по идее нужно менять значение ячейки С1 и после имя листа. как меняется имя? первое число на 1 больше? Нумерация по очереди или в разнобой.



1



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

14.05.2015, 16:45

 [ТС]

10

Нумерация по очереди и три типа работ. 01-05-15К (01 номер; 05 месяц; 15 год; далее буква обозначение работы букв 3 К-кровельные работы; р-комплексный ремонт; м-малярные работы. Акты могут изменятся могут добавляться и удаляться. И их может быть куча. Вот в данный момент из-за одного моего просчета необходимо вручную переименовать 20 актов и присвоить им вручную другие номера…..

Добавлено через 1 час 16 минут

Цитата
Сообщение от Fairuza
Посмотреть сообщение

может это стоит Вам сделать

Может быть вы сможете помочь?



0



0 / 0 / 0

Регистрация: 14.05.2015

Сообщений: 6

22.05.2015, 11:23

 [ТС]

11

Vlad999, Товарищ, ничего не придумалось?=)))



0



Понравилась статья? Поделить с друзьями:
  • Мастер диаграмм excel где найти
  • Массовое объединение ячеек excel
  • Мастер график для ресторана excel
  • Массовое исправление ошибок в excel
  • Мастер восстановления паролей word