Forumula для создания оглавления в Excel - PullRequest
0 голосов
/ 06 июля 2018

Я ищу формулу, которую можно использовать непосредственно в ячейках, чтобы прочитать имя всех активных вкладок.Пожалуйста, обратитесь к снимку экрана для того же enter image description here.

Существует также = MID (CELL ("имя файла"), FIND ("]", CELL ("имя файла")) + 1,255) , но она дает тольконазвание текущей вкладки.Хотя это легко возможно с помощью макроса, но было бы здорово, если бы можно было получить формулу для этого.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Есть способ сделать это только через формулу,

Посмотрите здесь

Чувствуется, что в двух словах описывается, как это делается, но в этом подходе используются named range и lookup formula

Это довольно легко сделать

0 голосов
/ 06 июля 2018

Замечу, что вы говорите формулу, но вы можете использовать очень простую Определяемую пользователем функцию (UDF), которая входит в стандартный модуль в VBE (который вы открываете с помощью Alt + F11 )

Option Explicit
Public Function GetTabName(ByVal tabIndex As Long) As String
    GetTabName = ThisWorkbook.Worksheets(tabIndex).Name
End Function

Индекс листа передается в UDF в качестве параметра и возвращается соответствующее имя листа.


data


При тестировании на видимый лист можно использовать следующее, для которого дополнительная обработка листа не найдена:

Option Explicit
Public Function GetTabName(ByVal tabIndex As Long) As String
    Dim ws As Worksheet
    On Error GoTo Errhand
    Set ws = ThisWorkbook.Worksheets(tabIndex)
    If ws.Visible Then
        GetTabName = ThisWorkbook.Worksheets(tabIndex).Name
    Else
        GetTabName = "N/A"
    End If
Errhand:
    If Err.Number <> 0 Then
        Select Case Err.Number
        Case 9
            GetTabName = "Sheet not found"
        End Select
    End If
End Function

UDF Ограничения


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...