Note: The other languages of the website are Google-translated. Back to English

Как сделать имя вкладки листа равным значению ячейки в Excel?

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

Сделайте имя вкладки листа равным значению ячейки с кодом VBA
Сделайте имя вкладки листа равным значению ячейки с помощью Kutools for Excel


Сделайте имя вкладки листа равным значению ячейки с кодом VBA

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

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

2. Скопируйте и вставьте приведенный ниже код в окно кода, а затем нажмите другой + Q одновременно нажмите клавиши, чтобы закрыть окно Microsoft Visual Basic для приложений.

Код VBA: сделать вкладку листа равной значению ячейки

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub

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

С этого момента, когда значение в ячейке A1 изменится, имя вкладки листа также изменится.


Сделайте имя вкладки листа равным значению ячейки с помощью Kutools for Excel

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

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

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

2. в Переименовать несколько листов В диалоговом окне необходимо сделать следующее.

1). Отметьте имена листов, которые вы хотите переименовать, в Worksheets поле (можно выбрать один лист или несколько листов).
2). Выбрать Заменить исходное имя листа коробка в Параметры переименования .
3). Если вы хотите переименовать рабочий лист или несколько рабочих листов с указанным значением ячейки, выберите Из определенного диапазона вариант и выберите диапазон ячеек, на основе которого вы хотите переименовать листы.
4). Щелкните значок OK кнопка. Смотрите скриншот:

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

Заметки:

1. Вы можете использовать Фильтр функция, чтобы легко отфильтровать необходимый рабочий лист, если существует много рабочих листов.
2. Если вы хотите переименовать несколько листов с определенным значением ячейки на каждом листе. Например, sheet1 будет равен значению своей ячейки A1, а sheet2 также будет равен значению своей ячейки A1. Пожалуйста, выберите рабочие листы в Worksheets поле, затем выберите Переименовать листы с определенной ячейкой вариант и укажите ячейку A1 в поле.

3. Имя листа не будет изменяться автоматически при изменении значения ячейки.

  Если вы хотите получить бесплатную пробную версию (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% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (28)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Я вставил это в соответствии с инструкциями, но он не появился в моем списке доступных макросов. Я попытался запустить его вручную, введя имя макроса. Когда он попытался запустить макрос, появилось сообщение об ошибке «Аргумент не является необязательным».

Private Sub Worksheet_Change (ByVal Target As Range)
Если Не Пересечение(Цель, Диапазон("A1")) Ничего, Тогда
ActiveSheet.Name = ActiveSheet.Range("A1")
End If
End Sub

Кто-нибудь еще запускал этот код и имел ту же проблему?

В качестве теста я запустил более простой код, и он работал нормально, поэтому значение в «A1» не вызывает проблемы. Когда я запускаю приведенный ниже код, я вижу имя макроса «myTabName» в списке макросов. Приведенный выше код не отображается, и я предполагаю, что это из-за ошибки/отсутствующего аргумента.

Sub myTabName ()
ActiveSheet.Name = ActiveSheet.Range("A1")
End Sub

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

У меня это тоже не сработало, может быть потому, что ячейка, на которую я ссылаюсь, является формулой?

Спасибо за ответ
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Мэй,

Спасибо за ваш отзыв. Проблема была вызвана формулой. Код был изменен. Пожалуйста, попробуйте.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20230130
    On Error Resume Next
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    ElseIf Not Intersect(Target.Dependents, Range("A1")) Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я заставляю этот код работать, но он не обновляет имя вкладки автоматически, когда ячейка извлекает имя, если оно ссылается на другую ячейку (и эта ячейка изменяется).


Т.е. я изменяю ячейку в главном списке, который изменяет текст ячейки в конкретной ячейке на каждой вкладке, на которую код ссылается как на имя вкладки, НО вкладка не обновляет свое имя соответственно.
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Следующий код VBA может решить вашу проблему. Спасибо за ваш комментарий1

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg как диапазон, xCell как диапазон
On Error Resume Next
Если Не Пересечение(Цель, Диапазон("A1")) Ничего, Тогда
ActiveSheet.Name = ActiveSheet.Range("A1")
End If
Application.EnableEvents = False
Установите xRg = ActiveSheet.Range("A1").Прецеденты
Если не xRg - ничто, то
Для каждой xCell в xRg
ActiveSheet.Name = ActiveSheet.Range("A1")
Далее
End If
Application.EnableEvents = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Все еще не работает. У меня та же проблема, что и у jJJ. crystal: В вашем ответе показан весь код?
Последняя строка, показанная в вашем комментарии, - "Set xRg = ActiveSheet.Range("A1").Precedents"
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемый ЯС,
Нажмите кнопку «Подробнее» справа от комментария, чтобы отобразить весь комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Все еще есть такая же проблема.

У меня A1 нового листа указывает на другую ячейку на другой вкладке. Он обновляется в первый раз (при выполнении), но затем не изменяется при редактировании основной ячейки.
Этот комментарий был сведен к минимуму модератором на сайте
Private Sub Worksheet_SelectionChange (ByVal Target As Excel.Range)
Установить цель = диапазон («A1»)
Если цель = "", то выйдите из подпрограммы
При ошибке GoTo Badname
ActiveSheet.Name = Слева (Цель, 31)
Exit Sub
Плохое имя:
MsgBox "Пожалуйста, исправьте запись в A1." & Хр(13) _
& "Похоже, он содержит один или несколько " & Chr(13) _
& "недопустимые символы". и Хр(13)
Диапазон ("A1"). Активировать
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Тем не менее проблема такая же, она меняется в первый раз. когда я связываю эту ячейку с другим листом и меняю ее, она не меняется автоматически
Этот комментарий был сведен к минимуму модератором на сайте
Мне нужно использовать этот код, но я никогда раньше не вводил код vba. Любое руководство будет оценено.
Этот комментарий был сведен к минимуму модератором на сайте
Я изменяю ячейку в основном списке, который изменяет текст ячейки в определенной ячейке на каждой вкладке, на которую код ссылается как на имя вкладки, НО вкладка не обновляет свое имя соответственно.

---- это не работа
Этот комментарий был сведен к минимуму модератором на сайте
Я получил весь код, и он работал. Большое вам спасибо за вашу помощь!
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемый ЯС,
Я рад, что смог помочь.
Этот комментарий был сведен к минимуму модератором на сайте
Вы можете использовать простой макрос



Sub Macro3 ()
Dim индекс как целое число
Для индекса = от 1 до 18

Листы(индекс).Имя = Листы(индекс).Диапазон("A2").Значение

Следующий индекс



End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Спасибо, что поделились.
Этот комментарий был сведен к минимуму модератором на сайте
Это именно то, что мне нужно, но мне нужна вкладка для воссоздания даты, и она не работает ... Я предполагаю, что это как-то связано с тем, как Excel работает с датой и временем, может ли кто-нибудь предложить обходной путь?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Ник,
Excel не поддерживает ввод имени листа, содержащего специальные символы. Если введенная вами дата содержит символ /, это не позволит вам создать имя листа с этой датой.
Этот комментарий был сведен к минимуму модератором на сайте
Как я могу сослаться на две ячейки. например имя и идентификационный номер?
Этот комментарий был сведен к минимуму модератором на сайте
Я использую ваш точный код из приведенного выше для кода VBA, который отлично работает для того, что мне нужно. Однако у меня есть куча макросов на листе под названием «Шаблон задания», который копируется и повторно используется для каждого нового задания. Я разработал все свои макросы на основе новой скопированной версии под названием Job Template (2). Как только имя листа изменено на новое имя задания, макросы больше не работают, и их приходится делать вручную. Я хотел бы иметь возможность использовать любую из моих кнопок макросов в любой момент, а не использовать их только до того, как я изменю имя листа.

Есть ли способ, чтобы код VBA всегда ссылался на имя листа перед запуском остальных функций кода?
Этот комментарий был сведен к минимуму модератором на сайте
Каково максимальное количество рабочих листов, имена которых можно изменить с помощью Kutools Plus? потому что excel позволяет мне изменить только 17 имен, и все
Этот комментарий был сведен к минимуму модератором на сайте
Это отлично сработало для моего первого рабочего листа, но не для второго или третьего и т. Д. (У меня есть до 20 рабочих листов, которым нужна эта функция). Я что-то упускаю?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Оуэн,
Этот код работает только для одного рабочего листа за раз. Извините за беспокойство.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Кристал,

Когда я вставляю ваш код, он возвращается с ошибкой «определяемый пользователем тип не определен»?

Благодарю.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Том Дж.
Убедитесь, что эти три параметра отмечены в диалоговом окне «Ссылки — VBAProject».
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/error.png
Этот комментарий был сведен к минимуму модератором на сайте
красиво получилось!
Этот комментарий был сведен к минимуму модератором на сайте
привет,
que voulez-vous dire par appuyer autre autre+q dans le code vba après avoir collé.
J'ai simplement fermé la page après avoir collé et ça ne marche pas
мерси
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL