Замечу, что вы говорите формулу, но вы можете использовать очень простую Определяемую пользователем функцию (UDF), которая входит в стандартный модуль в VBE (который вы открываете с помощью Alt + F11 )
Option Explicit
Public Function GetTabName(ByVal tabIndex As Long) As String
GetTabName = ThisWorkbook.Worksheets(tabIndex).Name
End Function
Индекс листа передается в UDF в качестве параметра и возвращается соответствующее имя листа.
При тестировании на видимый лист можно использовать следующее, для которого дополнительная обработка листа не найдена:
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 Ограничения