📖 Создание оглавления
Автоматическое создание оглавления (содержания) для всех листов в рабочей книге Excel с помощью VBA.
👍 Если у вас в файле много листов, можно создать оглавление, где каждая строка — это ссылка на определенный лист. Такой список поможет быстро переключаться между страницами. Кроме того, в соседнем столбце можно разместить какие-либо комментарии к соответствующему листу.
📌 Код VBA Excel:
📌 Как работает макрос?
🔹 Создает новый лист "Оглавление".
🔹 Записывает список всех листов.
🔹 Добавляет гиперссылки для перехода.
#VBA #ExcelVBA #Оглавление #Содержание #Hyperlinks #SubAddress
Автоматическое создание оглавления (содержания) для всех листов в рабочей книге Excel с помощью VBA.
👍 Если у вас в файле много листов, можно создать оглавление, где каждая строка — это ссылка на определенный лист. Такой список поможет быстро переключаться между страницами. Кроме того, в соседнем столбце можно разместить какие-либо комментарии к соответствующему листу.
📌 Код VBA Excel:
Sub CreateTableOfContents()
Dim ws As Object, toc As Object
Dim i As Integer
' Удаляем старый лист "Оглавление", если он уже существует
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Оглавление").Delete
Application.DisplayAlerts = True
On Error GoTo 0
' Создаем новый лист "Оглавление"
Set toc = Sheets.Add(Before:=Sheets(1))
toc.Name = "Оглавление"
' Заголовок
toc.Cells(1, 1).Value = "Оглавление"
toc.Cells(1, 1).Font.Bold = True
toc.Cells(1, 1).Font.Size = 14
' Добавляем ссылки на листы
i = 2
For Each ws In ThisWorkbook.Sheets
If ws.Name <> "Оглавление" Then
toc.Cells(i, 1).Value = ws.Name
toc.Hyperlinks.Add Anchor:=toc.Cells(i, 1), _
Address:="", SubAddress:="'" & ws.Name & "'!A1", _
TextToDisplay:=ws.Name
i = i + 1
End If
Next ws
' Автоширина столбца
toc.Columns("A").AutoFit
MsgBox "Оглавление создано!", vbInformation, "Готово!"
End Sub
📌 Как работает макрос?
🔹 Создает новый лист "Оглавление".
🔹 Записывает список всех листов.
🔹 Добавляет гиперссылки для перехода.
#VBA #ExcelVBA #Оглавление #Содержание #Hyperlinks #SubAddress
🔥5👍1
📄 Добавление нового листа в оглавление
После добавления в книгу нового листа, с помощью предыдущего кода можно обновить оглавление. Но, если вы включили в оглавление какие-то дополнительные пометки и комментарии, они будут удалены вместе со старым листом "Оглавление". Чтобы сохранить пометки и комментарии, можно просто добавить ссылку на новый лист в существующее оглавление.
📌 Код VBA Excel:
📌 Как работает макрос?
🔹 Спрашивает пользователя о необходимости добавления в оглавление ссылки на активный лист.
🔹 Если пользователь отвечает «OK», макрос записывает ссылку на активный лист в первую свободную ячейку первого столбца листа "Оглавление".
#VBA #ExcelVBA #Оглавление #Содержание #Hyperlinks #SubAddress
После добавления в книгу нового листа, с помощью предыдущего кода можно обновить оглавление. Но, если вы включили в оглавление какие-то дополнительные пометки и комментарии, они будут удалены вместе со старым листом "Оглавление". Чтобы сохранить пометки и комментарии, можно просто добавить ссылку на новый лист в существующее оглавление.
📌 Код VBA Excel:
Sub AddItemToTableOfContents()
Dim ws As String, n As LongLong
ws = ActiveSheet.Name
If MsgBox("Добавить лист «" & ws & "» в Оглавление?", 33) = 1 Then
Sheets("Оглавление").Activate
' Определяем номер строки первой незаполненной ячейки
n = Cells(Rows.Count, 1).End(xlUp).Row + 1
' Добавляем ссылку на активный лист
Cells(n, 1).Value = ws
ActiveSheet.Hyperlinks.Add Anchor:=Cells(n, 1), _
Address:="", SubAddress:="'" & ws & "'!A1", _
TextToDisplay:=ws
' Автоширина столбца
Columns("A").AutoFit
MsgBox "Лист «" & ws & "» добавлен в Оглавление!", vbInformation, "Готово!"
End If
End Sub
📌 Как работает макрос?
🔹 Спрашивает пользователя о необходимости добавления в оглавление ссылки на активный лист.
🔹 Если пользователь отвечает «OK», макрос записывает ссылку на активный лист в первую свободную ячейку первого столбца листа "Оглавление".
#VBA #ExcelVBA #Оглавление #Содержание #Hyperlinks #SubAddress
👍4