Honey Пользователь Сообщений: 204 |
#1 07.09.2015 11:55:30 У меня есть макрос:
То есть когда изменяется ячейка А1, название соответствующего листа меняется автоматически. Но у меня в А1 не просто текст или числа. Применяется формула. И пока я не нажму снова на эту ячейке в формулу не нажму ентер, название листа не меняется. Макросу нужно вручную показывать что расчет произошел и теперь его значение другое. Пробовала сама получилось примерно вот это:
Но совместить их правильно я не смогла. Чего-то не работает да и как совмещать правильно не знаю. P.S. В примере макрос находится: Исходный текст — контекстное меню листа Прикрепленные файлы
Изменено: Honey — 07.09.2015 13:36:09 |
||||
Сергей Пользователь Сообщений: 11251 |
#2 07.09.2015 12:10:28 на второй ссылке в поиске в модуль листа
Лень двигатель прогресса, доказано!!! |
||
Honey Пользователь Сообщений: 204 |
Сергей, спасибо большое! Я была бы благодарна, если бы к тому же и объяснили еще подробней что и куда))) Изменено: Honey — 07.09.2015 12:37:11 |
Сергей Пользователь Сообщений: 11251 |
вот Лень двигатель прогресса, доказано!!! |
Honey Пользователь Сообщений: 204 |
Сергей,УАУ!!! То есть Вы тот макрос вообще убрали? Это так круто! Спасибо большое прибольшое!!! А можете объяснить почему так? Что означает именно этот макрос? И еще вопрос… Если мои исходные данные находятся не в вышеуказанных ячейках а в С1 и Н3? Как тогда мне быть? Можно ли переформировывать макрос? Изменено: Honey — 07.09.2015 12:44:20 |
Сергей Пользователь Сообщений: 11251 |
#6 07.09.2015 12:44:26
неа, патамушто я тоже чайник макрос нашел поиском а лезть в справку мне лень Лень двигатель прогресса, доказано!!! |
||
Михаил Лебедев Пользователь Сообщений: 2855 |
#7 07.09.2015 12:47:10 Что Вы хотите, чтобы получилось? Ваш код — это просто запись макрорекордером процесса редактирования ячейки А1, в которой записана формула. Если Вы хотите, чтобы изменение названия листа происходило только для первого листа — внесите в модуль этого листа код, предложенный Сергеем.
или в модуль каждого листа код Сергея. Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/ |
||
Но в А1 должна быть формула Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/ |
|
Sanja Пользователь Сообщений: 14838 |
#9 07.09.2015 12:51:36
А это куда применить? Из какой ячейки должно браться наименование листа? Согласие есть продукт при полном непротивлении сторон. |
||
Honey Пользователь Сообщений: 204 |
Каждый день будут создаваться новые листы в книге. И соответственно каждый день меняется дата и фамилия в ячейках. Поэтому я хочу чтобы в зависимости кто и когда применял файл изменялось название соответствующего листа, просто чтобы было легче прослеживать и далее применять данную информацию для др формул. При этом возможно в будущем названия листов будут исходить из других ячеек на этом листе. Как мне это можно контролировать? В макросе, который я использовала до этого есть пометка из какой именно ячейки берутся данные. Можно что-то вроде этого? |
Михаил Лебедев Пользователь Сообщений: 2855 |
#11 07.09.2015 12:53:15
Тот макрос отслеживал 3 условия, макрос Сергея — только одно. Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/ |
||
Honey Пользователь Сообщений: 204 |
#12 07.09.2015 12:53:16
А если она будет меняться? Например не в А1 а в М6? |
||
Сергей Пользователь Сообщений: 11251 |
.Cells(6, 13) Изменено: Сергей — 07.09.2015 12:56:00 Лень двигатель прогресса, доказано!!! |
Sanja Пользователь Сообщений: 14838 |
Может лучше вести ЛОГ работы с файлом? Согласие есть продукт при полном непротивлении сторон. |
Honey Пользователь Сообщений: 204 |
Sanja, это нужно мне также для того, чтобы путь к данным в листе я могла применять в формуле ДВССЫЛ… Мне так удобнее будет… |
Михаил Лебедев Пользователь Сообщений: 2855 |
#16 07.09.2015 13:32:39
Возможно Вам поможет вот такой вариант.
А вообще — Ваш подход, на мой взгляд, не очень удачный…
Вы сколько листов планируете создать в одной книге? [рабочих дней в году] * [кол-во менеджеров]? У Вас достаточно мощный компьютер? Прикрепленные файлы
Всё сложное — не нужно. Всё нужное — просто /М. Т. Калашников/ |
||||||
Honey Пользователь Сообщений: 204 |
#17 08.09.2015 05:36:11 Михаил Лебедев,спасибо большое! Ваш последний вариант — то, что нужно! Насчет остального: компьютер достаточно мощный, до этого они просто вручную переименовывали листы — у каждого свой формат, поэтому удобнее если все будет автоматически выводиться в одном. Книга создается на месяц, каждый день по 10 максимум новых листов на одного менеджера. Как обычно, макрос не позволяет создавать копии листа (н-р 01.02.10Соколов, а копия 01.02.10Соколов (2) — выдает ошибку), но это небольшая проблема))) Ведь при этом он все-равно продолжает отлично работать! |
формула на автоматическое изменение названия листа книги |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Переименование рабочих листов обычно применяется в нашей работе с Excel, но пробовали ли вы когда-нибудь переименовывать рабочие листы на основе значений ячеек? Конечно, вы можете переименовывать листы вручную, но здесь в этом руководстве представлены некоторые приемы, позволяющие быстро переименовать несколько листов на основе значений ячеек, что может сэкономить ваше рабочее время.
Переименовать листы на основе определенной ячейки с VBA
Переименование листов на основе определенной ячейки с помощью функции «Переименовать несколько листов»
Переименование листов на основе содержимого ячеек с помощью функции «Переименовать несколько листов»
С помощью VBA ниже вы можете переименовать относительный рабочий лист на основе определенной ячейки.
1. Выберите ячейку, на основе которой вы хотите переименовать лист, в этом случае выберите «Ячейка A1». Смотрите скриншот:
2. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
3. Нажмите Вставить > Модули, затем вставьте ниже код VBA в новый Модули окно.
VBA: переименование листов на основе определенных значений ячеек.
Sub RenameSheet()
'UpdatebyKutools20191129
Dim xWs As Worksheet
Dim xRngAddress As String
Dim xName As String
Dim xSSh As Worksheet
Dim xInt As Integer
xRngAddress = Application.ActiveCell.Address
On Error Resume Next
Application.ScreenUpdating = False
For Each xWs In Application.ActiveWorkbook.Sheets
xName = xWs.Range(xRngAddress).Value
If xName <> "" Then
xInt = 0
Set xSSh = Nothing
Set xSSh = Worksheets(xName)
While Not (xSSh Is Nothing)
Set xSSh = Nothing
Set xSSh = Worksheets(xName & "(" & xInt & ")")
xInt = xInt + 1
Wend
If xInt = 0 Then
xWs.Name = xName
Else
If xWs.Name <> xName Then
xWs.Name = xName & "(" & xInt & ")"
End If
End If
End If
Next
Application.ScreenUpdating = True
End Sub
4. Нажмите F5 ключ для запуска кода VBA. Затем все листы были переименованы по каждому относительному значению ячейки A1.
Если у вас есть Kutools for Excel, вам не нужно сохранять код VBA, вы можете использовать Переименовать несколько листов функция для быстрого переименования всего рабочего листа на основе их относительных ячеек.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Включите книгу, для которой вы хотите переименовать ее имена рабочих листов.
2. Нажмите Кутулс Плюс > Рабочий лист > Переименовать листы. Смотрите скриншот:
3. Затем в появившемся диалоговом окне отметьте листы, которые вы хотите переименовать, в Worksheets панели и выберите один из Переименовать вариант вам нужно, здесь я заменю имя листа, потом проверю Переименовать листы с определенной ячейкой, и выберите ячейку, которую нужно переименовать. Смотрите скриншот:
4. Нажмите Ok. Теперь листы переименованы с определенным содержимым ячеек.
Но иногда вам нужно переименовать несколько листов на основе диапазона значений ячеек, как показано на скриншоте ниже, в этом случае вы можете выбрать ниже метод.
Работы С Нами Переименовать несколько листов of Kutools for Excel, вы также можете переименовывать листы на основе выбранного диапазона.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс Плюс > Рабочий лист > Переименовать листы. Смотрите скриншот:
2. в Переименовать несколько листов диалоговом окне необходимо указать следующие параметры:
(1) Выберите листы, которые нужно переименовать, из Список рабочих листов;
(2) Проверить Из определенного диапазона вариант и выберите значения ячеек, которые необходимо переименовать на основе;
(3) Укажите Параметры переименования, вы можете проверить Вставить перед именем исходного листа, Вставить после имени исходного листа или Заменить исходное имя листа, и вы можете предварительно просмотреть соответствующий результат в диалоговом окне.
3. Нажмите Ok, а затем вы увидите, что все выбранные вами листы были переименованы на основе указанных значений ячеек.
Заменить исходное имя листа
Вставить перед именем исходного листа
Вставить после имени исходного листа
С помощью утилиты Rename Worksheets вы также можете переименовывать рабочие листы с определенным префиксом или суффиксом. Щелкните здесь, чтобы узнать больше о переименовании нескольких листов.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Здравствуйте! Мне нужно чтобы лист сам автоматически переименовывался в название из ячейки. Например на листе1 есть ячейка A1. Там, в ячейке забито слово Колобок. Нужно чтобы лист1 сам переименовывался в название Колобок.
Через кнопку наверное так:
Sub Кнопка1_Щелкнуть()
NewIm = Range(«A1»)
Sheets(«Лист1»).Name = NewIm
End Sub
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Wasilic спасибо, но как же автоматом сделать?
Цитата: ActionFace от 05.01.2010, 17:32
Wasilic спасибо, но как же автоматом сделать?
Что значит «АВТОМАТОМ»? Если не по нажатию кнопки, то при каких условиях? При включении комьютера или открытия книги? Или ….
Может я и не смогу ответить.
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Wasilic , впринципе и так хорошо! Спасибо! Но можно еще вопрос? У меня есть и второй лист который должен переименовываться Можно написать код для двух листов в пределах одного макроса? У листа2 есть свой A1 и там название предположим пчелка.
Sub Кнопка1_Щелкнуть()
NewIm = Range(«A1»)
Sheets(«Лист1»).Name = NewIm
NewIm = Sheets(«Лист2»).Range(«A1»)
Sheets(«Лист2»).Name = NewIm
End Sub
Не понимаю смысла этой автоматизации.
Если это одноразовая процедура, то почему не ручками — нажав правую кнопку на имени листа.
Но, если и новое имя листа будет переименовываться, то этот макрос не подойдет.
В общем то, это в тему о макросах VBA.
Внизу под сообщением есть выбор тем:
Выбери «Проекты VBA»
А много разных ответов поищи здесь.
http://msoffice.nm.ru/faq/macros.htm
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Если автоматически, то может быть так?
Меняйте ячейки А1 в разных листах
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
_Boroda_ Круто! Спасибо! Но как вы это сделали? Я не вижу ни формулы, ни макроса в присланном файле. Можете написать пошаговую инструкцию?
Нужно два раза кликнуть мышой по «Эта книга» в VBA. Там макрос и сидит.
Сам макрос:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then
On Error Resume Next
Sh.Name = Sh.Range("a1")
If Not Err.Number = 0 Then MsgBox "Лист " & Sh.Name & " нельзя переименовать в " _
& Sh.Range("a1") & "," & Chr(10) & "лист " & Sh.Range("a1") & " уже есть в этой книге."
On Error GoTo 0
End If
End Sub
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
_Boroda_ Спасибо Большое все заработало! Не сочтите за наглость, а можно вас еще кое о чем спросить? Проблема такая. Мне нужно с экспортить с листа1 данные в текстовом файле с разделителем табуляции(.txt) Но вот незадача. В моих данных имеются точка с запятой ; . И при создании txt в экспортируемом тексте у меня появляются кавычки » ! Кавычки мне не нужны! Как можно от них избавиться? Я конечно могу не экспортировать, а просто скопировать и вставить, но проблема в том что у меня данные в разных ячейках и при копировании txt понимает что это разные ячейки и ставит между ними невидимую палку |. Как от нее можно избавиться?
Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;).
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;).
5.Потом делаю экспорт в формате txt с раздел табуляции.
6.В файле txt должно получиться: Kolobok;1;
Но этот Excel делает между словом Kolobok и знаком ; невидимый промежуток в виде знака | и самое страшное, между знаком ; excel пишет кавычки!
То есть TXT файл получается: «Kolobok;» 1 «;»
Приложил пример.
Если я правильно понял, необходимо сохранить значения из ячеек разделив их знаком точка с запятой «;». Попробуйте сохранить в формате *.csv. У меня на 2003 как раз такой результат получается. Формат .csv можно просто переименовать в .txt или же напрямую открыть текстовым редактором.
Еще один вариант автонаименования листа по ячейке. Используются свойства листа:
1. В случае изменения ячейки вручную на активном листе
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Name = Me.Cells(1, 1)
End Sub
2. В случае измениния ячейки в неактивном листе посредством формулы-ссылки (в приложении третий лист)
Private Sub Worksheet_Calculate()
Me.Name = Me.Cells(1, 1)
End Sub
Цитата: ActionFace от 13.01.2010, 23:46
Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;).
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;).
5.Потом делаю экспорт в формате txt с раздел табуляции.
Извратиться, как написал boroda, наверное можно через дополнительный лист формулой «=Лист1!A1 & Лист1!B1 & Лист1!C1»
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Цитата: ActionFace от 13.01.2010, 23:46
Мне это нужно для одной управляющей програмки, которая кушает только txt.
1.Вообщем я на листе1 в ячейке A1 пишу допустим Kolobok.
2.Потом там же в A1 дописываю точку с запятой(;).
3.Далее в ячейке B1 пишу цифру 1.
4.Затем в ячейке C1 пишу точку с запятой(;).
5.Потом делаю экспорт в формате txt с раздел табуляции.
6.В файле txt должно получиться: Kolobok;1;
Посмотри файлик. Выкрутишся наверняка.
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Содержание
- Требования к именам листов
- Процесс переименования
- контекстное меню ярлыка
- двойной щелчок по ярлыку
- Как переименовать лист рабочей книги при помощи мыши?
- Вставка нового листа в Excel
- Обращение к рабочим листам
- Скрытие и отображение листов
- Описание задачи
- Как копировать и переименовать лист Excel макросом
- Перемещение/копирование листов в Excel
- Как сменить название листа
- Как изменить имя листа при помощи контекстного меню?
- Удаление листа в Excel
Требования к именам листов
К именам листов рабочей книги предъявляется несколько ограничений:
1) длина введенного имени не должна превышать 31-го знака;
2) имя листа не должно содержать ни одного из следующих знаков: двоеточи” ( : ), косая черта ( / ), вопросительный знак ( ? ), звездочка ( * ) и квадратные скобки ( [ ] );
3) имя не должно быть пустым.
Процесс переименования
Процедура переименования листов в Экселе в целом интуитивно понятна. Тем не менее, у некоторых пользователей, которые только начинают освоение программы, возникают определенные трудности.
Прежде, чем перейти непосредственно к описанию способов переименования, выясним, какие названия давать можно, а присвоение каких будет некорректным. Имя может быть присвоено на любом языке. При его написании можно использовать пробелы. Что же касается основных ограничений, то следует выделить следующие:
- В наименовании не должны присутствовать такие символы: «?», «/», «», «:», «*», «[]»;
- Название не может быть пустым;
- Общая длина наименования не должна превышать 31 знак.
При составлении имени листа нужно учитывать вышеуказанные правила. В обратном случае программа не даст завершить данную процедуру.
контекстное меню ярлыка
Наиболее интуитивно понятный способ переименования – это воспользоваться возможностями, которые предоставляет контекстное меню ярлыков листов, расположенных в левой нижней части окна приложения сразу над строкой состояния.
- Кликаем правой кнопкой по ярлыку, над которым хотим произвести манипуляцию. В контекстном меню выбираем пункт «Переименовать».
- Как видим, после этого действия поле с названием ярлыка стало активным. Просто набираем туда с клавиатуры любое подходящее по контексту наименование.
- Жмем на клавишу Enter. После этого листу будет присвоено новое имя.
двойной щелчок по ярлыку
Существует и более простой способ переименования. Нужно просто кликнуть двойным щелчком по нужному ярлыку, правда, в отличие от предыдущего варианта, не правой кнопкой мыши, а левой. При использовании данного способа никакого меню вызывать не нужно. Наименование ярлыка станет активным и готовым к переименованию. Вам останется только набрать нужное название с клавиатуры.
Как переименовать лист рабочей книги при помощи мыши?
Для переименования листа необходимо:
1) в окне открытой книги дважды щелкнуть левой кнопкой мыши на ярлычке нужного листа;
2) набрать нужное имя листа, соблюдая требования к листам, изложенные выше;
3) нажать клавишу Enter на клавиатуре для закрепления введенного имени.
- Чтобы вставить новый рабочий лист, найдите и нажмите кнопку Новый лист.
- Откроется новый пустой лист.
Для того чтобы изменить количество листов, открываемых по умолчанию в новой книге 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 помощью нее переименовать все листы в книге можно следующим образом:
- Нужно подготовить два списка. Первый с перечнем наименований текущих листов. Второй – с новыми наименованиями листов. Проще всего сделать два столбца в первом старые наименования и рядом список, как нужно переименовать.
- Перейдите на вкладку VBA-Excel (она будет доступна после установки программы).
- В меню Диспетчеры найдите пункт Диспетчер листов.
- В диспетчере выберите команду Переименовать
- В диалоговом окне Переименовать листы из выделенного списка укажите диапазон со старыми наименованиями листов и аналогичный диапазон, содержащий новые названия, которые должны получиться в процессе переименования.
При необходимости можно заполнить диапазон текущими названиями листов нажав кнопку Заполнить. - Нажмите кнопку Переименовать.
Как копировать и переименовать лист 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
- Щелкните правой кнопкой мыши по ярлычку листа, который необходимо удалить, и из контекстного меню выберите пункт Удалить.
- Лист будет удален.
Удаление листа из рабочей книги нельзя отменить. Это одно из немногих необратимых действий в 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