ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Обычно мы можем легко переименовать рабочий лист, щелкнув правой кнопкой мыши лист на вкладке «Лист» и выбрав «Переименовать» из контекстного меню в Excel. Что делать, если переименовать все / несколько листов с указанными значениями ячеек? А что, если динамическое присвоение имени листу на основе указанного значения ячейки? В этой статье несколько методов помогут вам легко их решить.
- Динамически называть лист на основе значения ячейки с помощью VBA
- Назовите несколько листов на основе значений ячеек в соответствующих листах
- Назовите несколько листов из указанного списка
Динамически называть лист из значения ячейки с помощью VBA
Мы можем динамически назвать рабочий лист на основе значения определенной ячейки с помощью VBA в Excel, и вы можете сделать следующее:
Шаг 1. Щелкните правой кнопкой мыши рабочий лист на вкладке «Лист», которую вы будете динамически называть по значению ячейки, и выберите Просмотреть код из контекстного меню.
Шаг 2. В открывшемся окне Microsoft Visual Basic для приложений вставьте следующий код VBA в окно модуля.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Range("A1")
If Target = "" Then Exit Sub
Application.ActiveSheet.Name = VBA.Left(Target, 31)
Exit Sub
End Sub
Внимание: Этот VBA может динамически переименовывать лист на основе значения ячейки A1, и вы можете изменить A1 на другие ячейки в зависимости от ваших потребностей.
Шаг 3. Сохраните код VBA и закройте окно Microsoft Visual Basic для приложения.
Затем вы увидите, что имя листа динамически изменяется в зависимости от указанного значения ячейки.
Ноты:
- Если указанная ячейка пуста, рабочий лист не будет переименован;
- Если вы введете специальные символы в указанную ячейку, например *, появится предупреждение об ошибке.
Назовите несколько листов на основе значений ячеек в соответствующих листах
Работы С Нами Kutools for Excel’s Переименовать несколько листов функция, вы можете быстро назвать все / несколько листов с указанной ячейкой на соответствующем листе. Например, переименуйте каждый лист со значением Cell A1 на каждом листе.
1. Нажмите Кутулс Плюс > Рабочий лист > Переименовать листы. Смотрите скриншот:
2. В открывшемся диалоговом окне «Переименовать несколько листов» (см. Снимок экрана ниже):
(1) В Worksheets список, пожалуйста, проверьте рабочий лист, имя которого вы измените;
(2) В Параметры переименования раздел, пожалуйста, проверьте Заменить исходное имя листа вариант;
(3) В Имя нового рабочего листа раздел, пожалуйста, проверьте Переименовать листы с определенной ячейкой и укажите ячейку, содержимое которой вы назовете соответствующему листу.
(4) Щелкните значок Ok кнопку.
И теперь все проверенные листы были переименованы с указанной ячейкой каждого листа. Смотрите скриншот:
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Назовите несколько листов из указанного списка
Kutools for ExcelАвтора Переименовать несколько листов функция также поддерживает наименование нескольких листов со значениями ячеек в указанном диапазоне.
1. Нажмите Кутулс Плюс > Рабочий лист > Переименовать листы.
2. В открывшемся диалоговом окне «Переименовать несколько листов» вам необходимо (см. Снимки экрана ниже):
(1) В Worksheets list, проверьте рабочий лист, который вы переименуете, со значениями ячеек.
(2) В Параметры переименования раздел, проверьте Заменить исходное имя листа вариант;
(3) В Имя нового рабочего листа раздел, проверьте Из определенного диапазона вариант, щелкните кнопку, чтобы открыть второе диалоговое окно Rename Multiple Worksheets, выберите ячейки, которые вы переименуете по их значениям, и нажмите кнопку OK кнопку.
(4) Щелкните значок Ok кнопку, чтобы применить переименование.
Затем вы увидите, что все отмеченные имена рабочих листов изменены на указанные значения ячеек. См. Снимок экрана ниже:
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Демонстрация: имена листов на основе значений ячеек (из списка) в Excel
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (5)
Оценок пока нет. Оцените первым!
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
1 |
|
Макрос — имя листа по имени ячейки18.06.2013, 20:23. Показов 50221. Ответов 23
Господа, помогите нубу
0 |
Pavel55 971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
||||||||
18.06.2013, 22:28 |
2 |
|||||||
Перенименование листа. 1) откройте любой файл Excel
5) закройте редактор VBA и попробуйте ввести любой текст в ячейку А1 — лист должен переименоваться P.S. Сюда необходимо добавить функцию, которая будет проверять наличие запрещённых символов (*, / и других) Экспорт листа в PDF.
P.S. Создаёте кнопку на любом листе и повесьте этот макрос на неё. Укажите в моём коде ваше название нужного листа вместо Лист1
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
19.06.2013, 10:38 [ТС] |
3 |
Павел, спасибо большое. Но в макросе для сохранения в *pdf ругается на предпоследнюю строку — ActiveSheet.ExportAsFixedFormat xlTypePDF, iFileName
0 |
971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
|
19.06.2013, 11:15 |
4 |
По поводу сохранения в PDF — мой код будет работать, если у вас установлен Excel 2007 и выше. Вроде, только с 2007 офиса есть сохранение в PDF. По поводу остального ничего не скажу, нужно тестировать на файле
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
19.06.2013, 11:23 [ТС] |
5 |
у меня стоит Excel 2010.
0 |
971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
|
19.06.2013, 11:57 |
6 |
1) зачем выкладывать такой большой файл? 2) По поводу экспорта в PDF. Вы ТОЧНО заменили ИМЯ ЛИСТА с ЛИСТ1 на СВОЙ в вашем коде? В вашем файле в коде написано «ЛИСТ1» — а такого листа в вашем файле НЕЕЕЕТ. Либо переименуйте любой ваш лист, например, лист «Форма» на «Лист1«. У меня нормально эспорт срабатывает и в офисе 2010 и в 2013 3) у вас там куча листов. Где что должно выбираться, какой лист должен менять название? 4) По поводу изменения листа по изменению значения в ячейке Скачал ваш огромный файл. Предположил (раз вы не сказали какой лист нужен), что вам нужен лист «ФОРМА», вставил свой код в модуль этого листа, долго искал в какой ячейке у вас стоит ПРОВЕРКА, т.к. вы адрес этой ячейки не написали в теме, когда выкладывали файл, заменил в коде адрес ячейки с А1 на I8, попробовал менять значения из выподающего списка в яч. I8 — лист меняет своё имя постоянно, т.е. всё срабатывает хорошо. Может вам самому вставить нужный код в нужный лист и потестировать? )
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
19.06.2013, 12:08 [ТС] |
7 |
Извините что не пояснил..
0 |
Pavel55 971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
||||||||
19.06.2013, 12:43 |
8 |
|||||||
для экспорта попробуйте так
Для переименования (ТОЛЬКО СПЕРВА НАЗАВИТЕ НУЖНЫЙ ЛИСТ ТЕМ НАЗВАНИЕМ, КОТОРОЕ У ВАС В ДАННЫЙ МОМЕНТ УКАЗАНО В ЯЧЕЙКЕ I8 НА ЛИСТЕ «ФОРМА»)
Добавлено через 13 минут
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
19.06.2013, 13:25 [ТС] |
9 |
Павел, наверное я что то не так делаю. Добавлено через 12 минут Добавлено через 12 минут
0 |
971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
|
19.06.2013, 19:00 |
10 |
См. файл. Я чуть изменил код. Потестируйте.
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
20.06.2013, 12:56 [ТС] |
11 |
Павел, спасибо огромнейшее. Все работает. Вы меня здорово выручили.
0 |
Pavel55 971 / 353 / 135 Регистрация: 27.10.2006 Сообщений: 764 |
||||
25.06.2013, 17:00 |
12 |
|||
@Edvin, для выбора папки для сохранения файла можно использовать такой код
по поводу «очему при сохранении файла или при печати — вместе с пятью страницами текста захватывается в печать несколько пустых страниц» — я, к сожалению, не знаю
2 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
16.08.2013, 09:52 [ТС] |
13 |
Уважаемые, подскажите, почему когда вставляешь макрос все работает. Но стоит закрыть документ и открыть его снова — макрос перестает работать. Заметил что слетает вот эта настройка (во вложении — картинка 1 — работающий макрос, картинка 2 — макрос не работает). как сделать что бы она не изменялась? Миниатюры
0 |
Аксима 6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
||||||||||||
16.08.2013, 17:48 |
14 |
|||||||||||
Сделал чуть более надежное решение. Благодарности — Pavel55, ведь за основу был взят его код. В модуль нужного листа
В модуль ThisWorkbook («ЭтаКнига»)
В модуль общего назначения (объявить в самом верху)
P.S. В данном решении не обязательно, чтобы значение ячейки «I8» целевого листа совпадало с названием листа перед вставкой кода. С уважением,
1 |
0 / 0 / 0 Регистрация: 17.06.2013 Сообщений: 13 |
|
16.08.2013, 22:36 [ТС] |
15 |
Aksima, спасибо большое за помощь….но я полный нуб в скриптах. Не могли бы с учетом моих практически нулевых знаний более подробно написать, куда вставлять ваши скрипты?
0 |
6076 / 1320 / 195 Регистрация: 12.12.2012 Сообщений: 1,023 |
|
16.08.2013, 23:11 |
16 |
Edvin, попробую объяснить с помощью картинки. См. ниже. С уважением,
Миниатюры
1 |
0 / 0 / 0 Регистрация: 08.12.2015 Сообщений: 4 |
|
09.12.2015, 02:44 |
17 |
Sub ExportToPDF() Set sh = ActiveSheet Sheets(Sheets(«Форма»).Range(«I8»).Value).Select Почему останавливается макрос на выделенном коде. Использую Ofice 2007. Важно именно такое решение, сохранять активный лист «Форма» в файле PDF с присвоением ему имени из данных в ячейке «I8». Кто подскажет решение ?
0 |
k61 85 / 82 / 31 Регистрация: 13.10.2014 Сообщений: 167 |
||||
09.12.2015, 04:09 |
18 |
|||
Очевидно нет в книге листа с именем указанным в ячейке «I8» листа «Форма».
1 |
0 / 0 / 0 Регистрация: 08.12.2015 Сообщений: 4 |
|
09.12.2015, 13:42 |
19 |
Да, действительно нет, и не надо переименовывать лист по названию ячейки. Лист «Форма», он не переименовывается, но в нем есть ячейка «I8», в которой изменяются данные. Вот эти данные и должны быть в названии файла PDF при сохранении листа «Форма» Добавлено через 56 минут Этот код работает корректно, но сохраняет в PDF всегда одно и тоже название книги, без изменений.
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||||||
09.12.2015, 14:00 |
20 |
|||||||
Без необходимых проверок :
0 |
Как использовать значение ячейки, содержащей название листа, в качестве ссылки на тот самый лист?
Так,
A1 = имя листа
С1 = данные на этом листе
В ячейке, где надо получить эти данные
=ДВССЫЛ(A1 & «!C1»)
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Цитата: Wasilic от 13.12.2010, 12:28
Так,
A1 = имя листа
С1 = данные на этом листеВ ячейке, где надо получить эти данные
=ДВССЫЛ(A1 & «!C1»)
Так я уже пробовал. Выдает #ССЫЛКА! — Ошибка — неправильная ссылка на ячейку. (Excel 2003)
Уточню. В ячейке А1 на листе Лист1 содержится строковой значение, такое же как и название одного из листов данной книги.
Надо получить в одной из ячеек на листе Лист1 значение одной из ячеек (например, С1) с того листа, название которого содержится в ячейке А1 на листе Лист1.
Значит что то не правильно написано!
Все работает.
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Цитата: Wasilic от 13.12.2010, 13:25
Значит что то не правильно написано!
Все работает.
Спасибо огромное! Действительно все работает! Невнимательность меня подвела.
Раньше не получалось из-за того, что я добавлял параметр [;A1].
Тема закрыта.
Значение ячейки excel по имени листа
но листы будут добавляться и хочу брать имя листа из ячейки B4
но ошибка #ССЫЛКА
подскажите что делаю не так?
но листы будут добавляться и хочу брать имя листа из ячейки B4
но ошибка #ССЫЛКА
подскажите что делаю не так? Logist
но листы будут добавляться и хочу брать имя листа из ячейки B4
но ошибка #ССЫЛКА
подскажите что делаю не так? Автор — Logist
Дата добавления — 27.11.2013 в 11:42
Pelena | Дата: Среда, 27.11.2013, 11:48 | Сообщение № 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ответить |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|