Отловить переименование листа |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
По умолчанию в Excel листам присваиваются названия «Лист1», «Лист2», «Лист3» и т. д., но их можно легко переименовать.
Три способа переименования листа
-
Дважды щелкните ярлычок листа и введите новое имя.
-
Щелкните ярлычок листа правой кнопкой мыши, выберите команду Переименовать и введите новое имя.
-
Нажмите клавиши ALT+H, O, R и введите новое имя.
Важно:
Имена листов не могут:
-
Пустое место .
-
Содержать более 31 знака.
-
Содержать следующие символы: / ? * : [ ]
Например, 02/17/2016 нельзя использовать в качестве имени листа, а 02-17-2016 — можно.
-
Начинаться или заканчиваться апострофом (‘), при этом апострофы использоваться между символами.
-
Называться «History». Это зарезервированное слово, которое Excel использует для внутренних целей.
Переименование книги
Если вы хотите переименовать книгу, найдите ее в проводнике, нажмите клавишу F2 или щелкните ее правой кнопкой мыши и выберите «Переименовать», а затем введите новое имя.
Если книга уже открыта, щелкните Файл > Сохранить как, чтобы сохранить ее под другим именем. При этом будет создана копия существующей книги.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Вставка и удаление листов
Видео: перемещение и копирование листов
Краткое руководство: печать листа
Группировка листов
Защита листа
Нужна дополнительная помощь?
How do I make it so my macro will work on a spreadsheet even if someone changes the name of the tab for Sheet1, Sheet2, etc.
For example this snippet from my code:
Set MyWorkbook = Workbooks.Open(DataDialog.SelectedItems(Counter))
Set MySheet = MyWorkbook.Worksheets("Sheet1")
Gets the Run-time error ‘9’:
Subscript out of range
The issue is I need this macro to able to be used on multiple different workbooks with different named tabs and in a lot of cases tabs will be hidden and what appears to be Sheet1 is really Sheet3.
Is there a way to have a macro work on the active sheet alone?
asked Oct 23, 2014 at 14:28
2
Yes, You dont have to hardcode «Sheet1». Instead you can do like following:
Method 1:
Declare variable
Dim sName as string
sName = Activesheet.Name
And then you can use name in the variable sName instead of hardcoding it.
Method 2:
You can use index of sheets
sName = Sheets(1).Name
Where 1 indicates index number of sheets in workbook.
So, You can use any of the above two methods to get name of sheet when sheet name changes.
answered Oct 23, 2014 at 14:51
Paresh JParesh J
2,3933 gold badges24 silver badges31 bronze badges
2
Здравствуйте! Мне нужно чтобы лист сам автоматически переименовывался в название из ячейки. Например на листе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;
Посмотри файлик. Выкрутишся наверняка.
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Содержание
- Процесс переименования
- Способ 1: контекстное меню ярлыка
- Способ 2: двойной щелчок по ярлыку
- Способ 3: кнопка на ленте
- Способ 4: использование надстроек и макросов
- Вопросы и ответы
Как известно, программа Excel предоставляет возможность пользователю работать в одном документе сразу на нескольких листах. Название каждому новому элементу приложение присваивает автоматически: «Лист 1», «Лист 2» и т.д. Это не просто слишком сухо, с чем ещё можно смириться, работая с документацией, но еще и малоинформативно. Пользователь по одному наименованию не сможет определить, какие данные размещены в конкретном вложении. Поэтому актуальным становится вопрос переименования листов. Давайте разберемся, как это делается в Экселе.
Процесс переименования
Процедура переименования листов в Экселе в целом интуитивно понятна. Тем не менее, у некоторых пользователей, которые только начинают освоение программы, возникают определенные трудности.
Прежде, чем перейти непосредственно к описанию способов переименования, выясним, какие названия давать можно, а присвоение каких будет некорректным. Имя может быть присвоено на любом языке. При его написании можно использовать пробелы. Что же касается основных ограничений, то следует выделить следующие:
- В наименовании не должны присутствовать такие символы: «?», «/», «», «:», «*», «[]»;
- Название не может быть пустым;
- Общая длина наименования не должна превышать 31 знак.
При составлении имени листа нужно учитывать вышеуказанные правила. В обратном случае программа не даст завершить данную процедуру.
Способ 1: контекстное меню ярлыка
Наиболее интуитивно понятный способ переименования – это воспользоваться возможностями, которые предоставляет контекстное меню ярлыков листов, расположенных в левой нижней части окна приложения сразу над строкой состояния.
- Кликаем правой кнопкой по ярлыку, над которым хотим произвести манипуляцию. В контекстном меню выбираем пункт «Переименовать».
- Как видим, после этого действия поле с названием ярлыка стало активным. Просто набираем туда с клавиатуры любое подходящее по контексту наименование.
- Жмем на клавишу Enter. После этого листу будет присвоено новое имя.
Способ 2: двойной щелчок по ярлыку
Существует и более простой способ переименования. Нужно просто кликнуть двойным щелчком по нужному ярлыку, правда, в отличие от предыдущего варианта, не правой кнопкой мыши, а левой. При использовании данного способа никакого меню вызывать не нужно. Наименование ярлыка станет активным и готовым к переименованию. Вам останется только набрать нужное название с клавиатуры.
Способ 3: кнопка на ленте
Переименование можно также совершить с помощью специальной кнопки на ленте.
- Кликнув по ярлыку, переходим на лист, который нужно переименовать. Перемещаемся во вкладку «Главная». Жмем на кнопку «Формат», которая размещена на ленте в блоке инструментов «Ячейка». Открывается список. В нём в группе параметров «Упорядочить листы» нужно кликнуть по пункту «Переименовать лист».
- После этого наименование на ярлыке текущего листа, как и при использовании предыдущих способов, становится активным. Достаточно изменить его на нужное пользователю название.
Данный способ является не столь интуитивно понятным и простым, как предыдущие. Тем не менее, его тоже используют некоторые пользователи.
Способ 4: использование надстроек и макросов
Кроме того, существуют специальные настройки и макросы, написанные для Эксель сторонними разработчиками. Они позволяют производить массовое переименование листов, а не делать это с каждым ярлыком вручную.
Нюансы работы с различными настройками данного типа отличаются в зависимости от конкретного разработчика, но принцип действий один и тот же.
- Нужно в таблице Excel составить два списка: в одном перечень старых названий листов, а во втором – список наименований на которые вы хотите их заменить.
- Запускаем надстройки или макрос. Вводим в отдельное поле окна надстройки координаты диапазона ячеек со старыми наименованиями, а в другое поле – с новыми. Жмем на кнопку, которая активирует переименование.
- После этого, произойдет групповое переименование листов.
При наличии большего количества элементов, нуждающихся в переименовании, использование данного варианта будет способствовать значительной экономии времени пользователя.
Внимание! Перед установкой макросов и расширений сторонних разработчиков убедитесь, что они загружены из проверенного источника и не содержат вредоносных элементов. Ведь они могут послужить причиной заражения системы вирусами.
Как видим, переименовать листы в программе Excel можно с помощью нескольких вариантов действий. Одни из них интуитивно понятны (контекстное меню ярлыков), другие – несколько более сложные, но тоже не содержат особенных проблем в освоении. Последнее, в первую очередь, относится к переименованию с помощью кнопки «Формат» на ленте. Кроме того, для массового переименования можно также применять макросы и надстройки сторонних разработчиков.
Еще статьи по данной теме: