Название листа в ячейку excel vba

Есть ли простой способ вставить имя текущего листа в одну ячейку? Как вставить имя всех листов в ячейки? В этой статье вы найдете хитрые методы решения этих проблем.

Быстро вставить имя текущего листа в ячейку с функциями

Быстро вставляйте все имена листов в ячейки с помощью VBA

Быстро вставьте имя активного листа с помощью Kutools for Excel хорошая идея3

Быстро вставляйте все имена листов с гиперссылками в ячейки в виде индекса хорошая идея3


стрелка синий правый пузырь Быстро вставить имя текущего листа в ячейку с функциями

Просто введите формулу = ПРАВЫЙ (ЯЧЕЙКА («имя файла», D2), LEN (ЯЧЕЙКА («имя файла», D2)) — НАЙТИ («]», ЯЧЕЙКА («имя файла», D2))) в любую камеру и нажмите Enter key, в ячейке отображается имя текущего листа.
документ-вставка-листов-имя-в-ячейки1

Эта формула может отображать только имя текущего листа, но не имя другого листа.


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

Если вы хотите вставить все имена листов в ячейки, макрос VBA — хороший выбор.

Шаг 1: Удерживайте другой + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

Шаг 2: нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.

VBA для вставки имен всех листов в ячейки:

Sub SheetNames ()
Колонны (1) .Вставить
Для i = 1 To Sheets.Count
Cells (i, 1) = Sheets (i). Name
Затем я
End Sub

Шаг 3: нажмите F5 ключ для запуска этого макроса. Затем вы увидите, что имена всех листов будут указаны в столбце A текущего листа. Смотрите скриншот:
документ-вставка-листов-имя-в-ячейки2

Внимание: В коде VBA вы можете изменить Ячейки (i, 1) к другой ссылке, чтобы вставить имена листов, начинающиеся с других ячеек. Например, вставьте имена листов, начинающиеся с C3, измените его на Ячейки (i + 2, 3).


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

Если вы хотите вставить информацию об активном листе, включая имя листа, имя книги, путь к файлу и т. Д., В ячейку или верхний / нижний колонтитул, вы можете использовать Kutools for ExcelАвтора Вставить информацию о книге.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите ячейку или диапазон, в который нужно поместить имя листа, и щелкните Кутулс Плюс > Workbook > Вставить информацию о книге.документ вставить информацию о листе 1

2. Затем выберите информацию из книги, которую нужно вставить, из Информация раздел и укажите место, из которого вы хотите разместить информацию Вставить в раздел. Затем нажмите OK.

doc 1

Вы можете щелкнуть здесь, чтобы узнать больше о вставке информации из книги.

стрелка синий правый пузырь Вставить информацию о книге в ячейку / верхний / нижний колонтитул


стрелка синий правый пузырь Быстро вставляйте все имена листов с гиперссылками в ячейки в виде индекса

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

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

Шаг 1: нажмите Кутулс Плюс > Рабочий лист > Создать список имен листов.
документ-вставка-листов-имя-в-ячейки3

Шаг 2: в Создать список имен листов диалоговом окне, укажите настройки в соответствии с вашими потребностями и нажмите OK.
документ-вставка-листов-имя-в-ячейки4

Затем вы увидите, что все имена листов вставлены в новый лист, и каждое имя листа ссылается на соответствующий лист. См. Следующие скриншоты:

Имена листов с гиперссылками

Имена листов с кнопками макроса

документ-вставка-листов-имя-в-ячейки5

документ-вставка-листов-имя-в-ячейки6

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

стрелка синий правый пузырь Список всех имен листов с гиперссылками



Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Модератор:Naeel Maqsudov

q392

Сообщения:4
Зарегистрирован:13 янв 2005, 06:47

Требуется в ячейке рабочего листа вывести название этого листа.

С уважением,
q392.

Аватара пользователя

Игорь Акопян

Сообщения:1419
Зарегистрирован:13 окт 2004, 17:11
Откуда:СПБ
Контактная информация:

13 янв 2005, 13:45

открыть VBA (хм… а в русской раскладке получилось МИФ :) )
добавить в открытую книгу новый модуль или использовать существующий
создать функцию типа

Код: Выделить всё

Function SheetName() As String
  SheetName = ActiveSheet.Name
End Function

в ячейке написать =SheetName

Аватара пользователя

Naeel Maqsudov

Сообщения:2551
Зарегистрирован:20 фев 2004, 19:17
Откуда:Moscow, Russia
Контактная информация:

18 янв 2005, 01:33

=ПСТР(ЯЧЕЙКА(«filename»;A1);НАЙТИ(«]»;ЯЧЕЙКА(«filename»;A1))+1;65535)

Преимущества этого решения:
1. будет работать при отключенных макросах
2. автоматически пересчитывается при переименовании листа (Vba функция приведенная выше обновится только при пересчете листа, а не сразу же после переименования)

q392

Сообщения:4
Зарегистрирован:13 янв 2005, 06:47

18 янв 2005, 09:10

=ПСТР(ЯЧЕЙКА(«filename»;A1);НАЙТИ(«]»;ЯЧЕЙКА(«filename»;A1))+1;65535)
Формула дает ошибку #ЗНАЧ!

С уважением,
q392.

pashulka

Сообщения:831
Зарегистрирован:24 ноя 2004, 03:46
Контактная информация:

18 янв 2005, 09:37

По всей видимости Вы проверяете работу этой формулы в только что созданной и ещё не сохранённой рабочей книге.
До тех пор пока Вы не сохраните свою новую рабочую книгу =ЯЧЕЙКА(«имяфайла»;A1) будет = «» и следовательно Вы вряд ли получите имя рабочего листа.

q392

Сообщения:4
Зарегистрирован:13 янв 2005, 06:47

18 янв 2005, 11:55

Спасибо, формула работает.

С уважением,
q392.

Аватара пользователя

Naeel Maqsudov

Сообщения:2551
Зарегистрирован:20 фев 2004, 19:17
Откуда:Moscow, Russia
Контактная информация:

19 мар 2016, 13:51

В англоязычной версии эта формула будет выглядеть так:

=MID(CELL(«filename»;A1);FIND(«]»;CELL(«filename»;A1))+1;65535)

Копирование названия листа в ячейку

dmtgrs

Дата: Четверг, 09.12.2021, 09:34 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 25


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Возможно ли с помощью макроса скопировать название листа в ячейку? Рекодером макроса такое сделать не получается

 

Ответить

svp

Дата: Четверг, 09.12.2021, 09:49 |
Сообщение № 2

Группа: Пользователи

Ранг: Новичок

Сообщений: 13


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Сообщение отредактировал svpЧетверг, 09.12.2021, 09:51

 

Ответить

svp

Дата: Четверг, 09.12.2021, 09:54 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 13


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Забыл прикрепить файл.

К сообщению приложен файл:

svp.xlsm
(17.8 Kb)

 

Ответить

китин

Дата: Четверг, 09.12.2021, 10:22 |
Сообщение № 4

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

в стандартный модуль
[vba]

Код

Sub TT_()
Dim NN_ As String
NN_ = ActiveSheet.Name
ActiveSheet.Range(«A5»).Value = NN_
End Sub

[/vba]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Nic70y

Дата: Четверг, 09.12.2021, 10:35 |
Сообщение № 5

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

Рекодером макроса такое сделать не получается

решил приколоться :)
[vba]

Код

    ActiveCell.FormulaR1C1 = «=CELL(«»filename»»,RC)»
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Replace What:=»*]», Replacement:=»», LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Application.CutCopyMode = False

[/vba]


ЮMoney 41001841029809

 

Ответить

dmtgrs

Дата: Четверг, 09.12.2021, 10:48 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 25


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

в стандартный модуль

Sub TT_()
Dim NN_ As String
NN_ = ActiveSheet.Name
ActiveSheet.Range(«A5»).Value = NN_
End Sub

Спасибо!!!! А возможно ли сделать так, чтобы этот макрос мог срабатывать сразу на всех листах? Т.е. чтобы не открывать каждый лист. Названия листов разные. Лист1 Лист 2 Лист 3, соответственно эти названия попадают в ячейку своего листа. Лист1 A1=Лист1, Лист2 A1=Лист2,Лист3 A1=Лист3

Сообщение отредактировал dmtgrsЧетверг, 09.12.2021, 10:53

 

Ответить

Nic70y

Дата: Четверг, 09.12.2021, 11:02 |
Сообщение № 7

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

[vba]

Код

Sub u_700()
    For i = 1 To Sheets.Count
        Sheets(i).Range(«a1») = Sheets(i).Name
    Next
End Sub

[/vba]


ЮMoney 41001841029809

 

Ответить

китин

Дата: Четверг, 09.12.2021, 11:05 |
Сообщение № 8

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

[vba]

Код

Sub TT_()
Dim NN_ As String
Dim sh As Worksheet
  For Each sh In ActiveWorkbook.Worksheets
    NN_ = sh.Name
    sh.Range(«A1»).Value = NN_
  Next
End Sub

[/vba]

К сообщению приложен файл:

dmtgrs.xlsm
(15.5 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Хитрости »

4 Март 2015              53401 просмотров


Как получить имя листа формулой

Задача: записать в отдельной ячейке или внутри формулы имя текущего листа(т.е. того, в котором сама функция).

В принципе это очень легко сделать простейшей функцией пользователя:

'---------------------------------------------------------------------------------------
' Procedure : GetShName
' DateTime  : 04.03.2015 10:44
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : Функция возвращает в ячейку имя листа
'             rCell - Необязательный аргумент.
'                     Если указан - функция вернет имя листа, на котором расположена эта ячейка
'                     Если не указан - функция вернет имя листа, в котором записана функция
'---------------------------------------------------------------------------------------
Function GetShName(Optional rCell As Range)
    If Not rCell Is Nothing Then
        GetShName = rCell.Parent.Name
    Else
        GetShName = Application.Caller.Parent.Name
    End If
End Function

Синтаксис:
получение имени листа, в котором записана функция:
=GetShName()
получение имени листа, в котором расположена указанная ячейка
=GetShName(A1) — данная запись равнозначна записи без ячейки, т.к. ячейка все равно в пределах листа с самой функцией
=GetShName(Лист2!A1)


Но бывают случаи, когда использование макросов весьма нежелательно. Тогда можно воспользоваться чуть более громоздкой и менее понятной формулой:

=ПСТР(ЯЧЕЙКА(«filename»;A2);ПОИСК(«]»;ЯЧЕЙКА(«filename»;A2))+1;31)
=MID(CELL(«filename»,A2),SEARCH(«]»,CELL(«filename»,A2))+1,31)

Однако эта формула вернет точно такой же результат, как функция пользователя выше и макросы совершенно не нужны.

Теперь разберем эту формулу поподробнее
Самая основная часть — ЯЧЕЙКА(«filename»;A2). Функция ЯЧЕЙКА (CELL) с записанным первым аргументом «filename» возвращает полный путь к книге, включая имя листа и адрес ячейки, в которой записана функция:
C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1
Т.к. нам нужно только имя листа — мы применяем ПСТР (MID), которая возвращает часть текста, начиная с указанной позиции символа. ПОИСК (SEARCH) ищет нам именно эту позицию — позицию символа «]».
Если по шагам просмотреть этапы работы формулы, то будет нечто вроде:
=ПСТР(ЯЧЕЙКА(«filename»;A2);ПОИСК(«]»;ЯЧЕЙКА(«filename»;A2))+1;31)
Шаг1 =>
=ПСТР(ЯЧЕЙКА(«filename»;A2);ПОИСК(«]»;C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1)+1;31)
Шаг2 =>
=ПСТР(ЯЧЕЙКА(«filename»;A2);49+1;31)
Шаг3 =>
=ПСТР(C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1;50;31)
Шаг4 =>
=Лист1
Первый момент: почему применяю цифру 31 последним аргументом ПСТР? По факту, там необходимо указывать точное количество символов, но если указать больше — то будут взяты все символы от указанного и до последнего. Т.е можно было бы указать и 99, но 31 — это максимальное количество символов, которое можно использовать в имени листа.
Второй момент: первым аргументом функции ЯЧЕЙКА указывается текст, обозначающий тип сведений. В русской локализации он доступен на русском — «имяфайла». Однако при открытии файла с этой функцией в другой локализации тип сведений не будет переведен и функция не сможет работать. Поэтому я указываю на английском, т.к. он является универсальным в данном случае и будет работать в любой локализации. Однако нет никакой ошибки, если указать на русском: ЯЧЕЙКА(«имяфайла»;A2)

Если вторым аргументом функции ЯЧЕЙКА ничего не указывать(=ЯЧЕЙКА(«filename»)), то функция вернет полный путь с именем того листа, который активен в данный момент(даже если это лист другой книги). Это всегда надо учитывать. Часто функцию используют для определения имени книги, в которой сама функция записана(например, для запросов Power Query — Относительный путь к данным PowerQuery). И в какой-то момент может получиться так, что ожидаете увидеть имя книги или листа с функцией, а получаете совсем другое.

Правда, у этой формулы есть свои недостатки: обязательно необходимо, чтобы книга была сохранена на диске. Это означает, что формула не сработает для книги, которая была только что создана и не сохранена. Связано это с ограничениями возможностей параметра «filename» функции ЯЧЕЙКА(CELL). Она не может получить путь к файлу, который еще не сохранен.
Функция пользователя(UDF) GetShName(приведенная в самом начале статьи) лишена этого недостатка.

Для чего вообще может быть нужно записывать имя листа в ячейку? Ну, например, если имя листа периодически меняется, а в своих формулах вы используете функции вроде ДВССЫЛ со ссылкой на этот лист. Либо для создания более наглядного оглавления через гиперссылки.


Кто-то уже явно догадался, что подобным же образом можно получить не только имя листа — но и имя книги:
=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1;ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1)
так же как и для имени листа — можно указать ячейку из другой книги и тогда формула вернет имя той книги, из которой указана ячейка.
Если ячейка не указана — функция вернет имя активной в данный момент книги.

Так же можно получить полный путь к книге и имя книги(без квадратных скобок и имени листа):
=ПОДСТАВИТЬ(ПСТР(ЯЧЕЙКА(«filename»;A1);1;ПОИСК(«]»;ЯЧЕЙКА(«filename»;A1))-1);»[«;»»)

Так же см.:
Имя предыдущего листа


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

This macro allows you to have your worksheets named by whatever is in a particular cell within a worksheet. This means that you can set your worksheets to be named by what is in cell A1 or F455 etc. You set what cell you want the name to come from in the vba code and whatever text or numbers are pulled from there become that sheets name. This is a cool way for you to have your sheets dynamically named in excel. You can even have a formula within the cell and based on what the formula spits out is what the tab will be named.

Note: For this macro to work, you need to insert it into the actual sheet where you want the name to come from a cell. You do this by going into the VBA editor by pressing «Alt + F11» and then look to the left pane. There you will see a «VBA Project» with the name of your excel file and right below that you will see a list of every sheet in that excel workbook. Double click the sheets in which you want to have this macro feature and then past the macro code in the window that pops up and you’re done.

Note: To change the cell you want to be referenced for the name of the sheet simply change «a1» in the vba code into any cell reference you want. For instance, change «a1» to «b5» if you want the name to come from cell b5.

Where to install the macro:  Worksheet

Name Worksheets Based on Cell Contents

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveSheet.Name = Range("a1").Value

End Sub


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Formulas Based on Cell Color — SUMIFS, IF, COUNTIF, Etc.

Tutorial:
How to use a SUMIF or SUMIFS function (or any conditional function or formula) on cell ba…

SUMIF(S) Based on Cell Color

Tutorial: How to SUM cells with certain background colors.
Sections:
Prepare the Data
SUMIF Cells wi…

Reverse Cell Contents (Mirror)

Macro: This macro will completely reverse the contents of any cell. This means that if you have a…

Delete Entire Rows Based on Predefined Criteria (Text)

Macro: This macro will allow you to specify certain criteria and then to delete rows based up…

SUMIF — Sum Values Based on Criteria in Excel

Tutorial:
The SUMIF function allows you to sum values based on a single criteria. This function wor…

Quickly Replace A Lot of Data in Excel

Tutorial: The Find & Replace works much the same way as Find and is located in the same place. (…

How to Install the Macro

  1. Select and copy the text from within the grey box above.
  2. Open the Microsoft Excel file in which you would like the Macro to function.
  3. Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
     Or For other ways to get there, Click Here.
  4. On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
  5. If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
  6. If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
  7. If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
  8. Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
  9. You are now ready to run the macro.

Similar Content

Formulas Based on Cell Color — SUMIFS, IF, COUNTIF, Etc.

Tutorial:
How to use a SUMIF or SUMIFS function (or any conditional function or formula) on cell ba…

SUMIF(S) Based on Cell Color

Tutorial: How to SUM cells with certain background colors.
Sections:
Prepare the Data
SUMIF Cells wi…

Reverse Cell Contents (Mirror)

Macro: This macro will completely reverse the contents of any cell. This means that if you have a…

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Понравилась статья? Поделить с друзьями:
  • Название листа в файле excel функция
  • Название листа в microsoft excel
  • Название листа в excel с процессом tax
  • Название листа в excel по названию ячейки
  • Название линии графика в excel