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

Sub GetSheets()

Dim w As Worksheet     Dim iRow As Integer     Dim iCol As Integer

iRow = Selection.Row     iCol = Selection.Column     For Each w in Worksheets         Cells(iRow, iCol) = w.Name         iRow = iRow + 1     Next w End Sub

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

Sub MakeTOC()

Dim w As Worksheet     Dim iRow As Integer     Dim iCol As Integer     Dim sTemp As String

iRow = Selection.Row     iCol = Selection.Column     For Each w in Worksheets         Cells(iRow, iCol) = w.Name         sTemp = "'" & w.Name & "'!A1"

ActiveSheet.Hyperlinks.Add Anchor:=Cells(iRow, iCol), _           Address:="", SubAddress:=sTemp, TextToDisplay:=w.Name         iRow = iRow + 1     Next w End Sub

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11679) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Retrieving_Worksheet_Names [Получение имен рабочих листов].