Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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

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

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


Легко создайте индекс листа, перечислив все имена листов в Excel:

щелчок Kutools Plus> Рабочий лист > Создать список имен листов чтобы легко перечислить все имена рабочих листов в новом листе в Excel. И вы можете перейти на соответствующий рабочий лист, нажав на имя листа.

Kutools for Excel: с более чем 200 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни. Скачайте бесплатную пробную версию прямо сейчас!

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel переносит расширенные функции 300 в Excel и мгновенно повышает производительность
  • Super Formula Bar (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон ...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объединить дублирующиеся строки и сумму / среднее ... Предотвратить повторяющиеся клетки; Сравнить диапазоны ...
  • Выберите Дублировать или Уникальные строки; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих книгах; Случайный выбор ...
  • Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое ...
  • Любить и быстро вставлять формулы, диапазоны, графики и рисунки; Шифровать ячейки с помощью пароля; Создать список рассылки и отправлять электронные письма ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев ...
  • Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенный Сортировать по месяцу / неделе / ​​дню, частоте и многому другому; Специальный фильтр жирным шрифтом, курсив ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разбить данные на несколько листов; Пакетное конвертирование xls, xlsx и PDF ...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.

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


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

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

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

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

Private Sub Worksheet_Change(ByVal Target As Range)
	If Not Intersect(Target, Range("A1")) Is Nothing Then
		ActiveSheet.Name = ActiveSheet.Range("A1")
	End If
End Sub

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

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


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

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

Kutools for Excel : с более чем 300 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни.

1. Нажмите Kutools Plus > Рабочий лист > Переименование нескольких рабочих листов, Смотрите скриншот:

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

1). Проверьте имена рабочих листов, которые вы хотите переименовать в Worksheets (вы можете выбрать один лист или несколько листов).

2). Выбрать Заменить имя оригинального листа коробка в Переименовать параметры раздел.

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

3). Нажмите OK кнопка. Смотрите скриншот:

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

Примечания:

1. Вы можете использовать Фильтр чтобы легко отфильтровать необходимый лист, если существует множество рабочих листов.

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

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


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

Kutools for Excel включает в себя более удобные инструменты Excel 300. Бесплатно, без ограничений, в 60-дни. Скачайте бесплатную пробную версию прямо сейчас!


  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905
  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Nilanjan Pal · 1 years ago
    You can rather use simple macro



    Sub Macro3()
    Dim index As Integer
    For index = 1 To 18

    Sheets(index).Name = Sheets(index).Range("A2").Value

    Next index



    End Sub
  • To post as a guest, your comment is unpublished.
    JAS · 1 years ago
    I got the whole code, and it worked. Thank you so much for your help!
  • To post as a guest, your comment is unpublished.
    jJJ · 1 years ago
    I am getting this code to work, but it does not automatically update the tab name when the cell it pulls the name from if referencing another cell (and that cell changes).


    I.e. I change a cell in a master list, which changes the cell text in a specific cell on each tab, which the code is referencing as the tab name, BUT the tab doesn't update its name correspondingly.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good day,
      The following VBA code can solve your problem. Thank you for your comment1

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xRg As Range, xCell As Range
      On Error Resume Next
      If Not Intersect(Target, Range("A1")) Is Nothing Then
      ActiveSheet.Name = ActiveSheet.Range("A1")
      End If
      Application.EnableEvents = False
      Set xRg = ActiveSheet.Range("A1").Precedents
      If Not xRg Is Nothing Then
      For Each xCell In xRg
      ActiveSheet.Name = ActiveSheet.Range("A1")
      Next
      End If
      Application.EnableEvents = True
      End Sub
      • To post as a guest, your comment is unpublished.
        NOOR · 5 months ago
        I change a cell in a master list, which changes the cell text in a specific cell on each tab, which the code is referencing as the tab name, BUT the tab doesn't update its name correspondingly.

        ---- it's not work
      • To post as a guest, your comment is unpublished.
        John Hammonds · 6 months ago
        I need to use this code but I've never entered vba code before. Any guidance would be appreciated.
      • To post as a guest, your comment is unpublished.
        JAS · 1 years ago
        Still doesn't work. I'm having the same issue as jJJ. crystal: Is the whole code shown in your reply?
        The last line shown in your comment is "Set xRg = ActiveSheet.Range("A1").Precedents"
        • To post as a guest, your comment is unpublished.
          crystal · 1 years ago
          Dear JAS,
          Please click the Read more button on the right side of the comment to display the whole comment.
          • To post as a guest, your comment is unpublished.
            Alex · 1 years ago
            Still have the same issue.

            I have A1 of the new sheet point to another cell in a different tab. It updates the first time (when you execute) but then no change when editing the master cell
            • To post as a guest, your comment is unpublished.
              Rj · 11 days ago
              Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
              Set Target = Range("A1")
              If Target = "" Then Exit Sub
              On Error GoTo Badname
              ActiveSheet.Name = Left(Target, 31)
              Exit Sub
              Badname:
              MsgBox "Please revise the entry in A1." & Chr(13) _
              & "It appears to contain one or more " & Chr(13) _
              & "illegal characters." & Chr(13)
              Range("A1").Activate
              End Sub
  • To post as a guest, your comment is unpublished.
    Jason · 1 years ago
    I pasted this in as instructed but it didn't show up in my list of available Macros. I tried to manually run it by keying in the Macro name. When it attempted to run the Macro, an error message came up "Argument no optional".

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
    ActiveSheet.Name = ActiveSheet.Range("A1")
    End If
    End Sub

    Has anyone else run this code and had the same issue?

    As a test I ran more basic code and it worked fine so the value in "A1" isn't causing the problem. When I run the code below I can see the Macro name "myTabName" in the Macro list. The code above doesn't appear and I'm assuming this is because of the bug/missing argument.

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

    Thanks for your help as I'd very much like to use the code as intended for automating tab name changes based on a cell value..
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Jason,
      The code works well in my case. Would you please provide your Office version? Thank you for your comment.