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

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

Ситуация

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

Снимок экрана: еженедельные отчеты о продажах.

Решения

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

Выполнение

Первый шаг

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

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

    Снимок экрана: имена листов сохраняются по умолчанию.

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

Шаг написания макросов

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

  1. На вкладке Разработчик выберите Visual Basic в категории Code или нажмите сочетание клавиш ALT+F11 на клавиатуре, чтобы отобразить окно Visual Basic.

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

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

    Sub RenameSheet()
    
    Dim rs As Worksheet
    
    For Each rs In Sheets
    rs.Name = rs.Range("B5")
    Next rs
    
    End Sub
    

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

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

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

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

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

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.