powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как создать оглавление в Excel?
19 сообщений из 19, страница 1 из 1
Как создать оглавление в Excel?
    #33170962
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
Помогите новичку, пожалуйста.
Имеется лист Excel с данными (прайс-лист).
Необходимо к нему создать лист-оглавление. Причем, при удалении/добавлении строк в лист данных, в оглавлении должны автоматически отображаться изменения нумерации. Заголовки в листе данных никак не выделены.
Предполагается, что список оглавления создается вручную, а затем к нему привязываются конкретные ячейки листа с данными.
Спасибо!
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33171021
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сделал типа такова:
Скопировал бы лист Экселя в Ворд (просто выделил все нужные данные - копировать - вставить в ворд), Перед вставленной таблицей добавил строки (2-3) и в эти строки создал оглавление (вставка - ссылка -оглавление...). Усё енто получившееся выделил бы, скопировал бы и вставил обратно в Эксель.
Затем перенес бы оглавление на другой лист....
Stepler (щёлк-щёлк!!)

Код: plaintext
 P.S.Присутствовали ли Вы, когда Вас фотографировали?  
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33171733
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема собственно не в создании оглавления, как такового. А в том, что лист с данными довольно объемный и десять раз на дню изменяется. Причем данные вставляются (или удаляются) в основном не в "хвост", а между старыми. То есть пункты оглавления могут постоянно менять номера страниц. Хотелось бы не в ручную их править, а чтобы при открытии листа с оглавлением умный скрипт пробегал бы по связанным с пунктами оглавления ячейкам, определял бы, на каких теперь они оказались страницах и подставлял бы эти цифирки в оглавление.
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33171774
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так чем тебя не устраивает предложенный метод. Может придется в ворде установить заголовки, но енто не так уж сложно...

Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется...
Sub Макрос1()
i = 1
l: s = "a" & i ' "а" или другое - столбец, хде править ссылку
Range(s).Select
k = "Лист1!" & Selection.Hyperlinks(1).SubAddress ' Лист1 - там где твоя база данных
Selection.Hyperlinks(1).SubAddress = k
Sheets("Лист2").Select ' Лист2 - там где твоё оглавление
i = i + 1
GoTo l
End Sub
Stepler (щёлк-щёлк!!)

Код: plaintext
 P.S.Присутствовали ли Вы, когда Вас фотографировали?  
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33173101
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stepler
Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется...


Что значит поправить номера страниц? Проблема в том и состоит, чтобы они сами "поправлялись" при изменении прайса. Я сделал, как ты предлагаешь, но оглавление пока не переносил на новый лист, т. е. ссылки оглавления остались рабочими. Но номера страниц остались такими, какими были в Word, а в Excel у меня другая разбивка. Закрытие-открытие документа не помогает. А мне нужно, чтобы оглавление автоматически отслеживало изменение положения заголовков, так-как при добавлении/удалении данных они "ездят" со страницы на страницу.
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33173204
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в Word (2002) обновление оглавления происходит с помощью панели инструментов "Структура", а в Excel такой панели нет...
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33173276
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться. Я могу список заголовков в оглавлении в ручную создать, он редко меняется. А в строки заголовков в следующий столбец "вытащить" как нибудь вышеуказанное свойство соответствующих ячеек. А потом сделать, чтобы они автоматически обновлялись, наприер, при открытии листа с оглавлением. Правда VBA для меня темный лес...
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33173422
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetSnailМне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться.
правильно кажется
activecell.Parent.name
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33173529
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-dukeправильно кажется
activecell.Parent.name
"For example, ActiveCell.Parent returns the worksheet that contains the active cell..."
( XL98: Styles("X").Parent Different Than in Earlier Versions of Excel )
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33174150
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
1. в строках оглавления(строка 1, 3, 6) вписываешь в ячейки формулы, которые указывают на первые строки данных
например в ячейку A1 =СТРОКА(A24), в ячейку A3 =СТРОКА(A40), в ячейку A6 =СТРОКА(A90)
2. Отмечаешь ячейки A1, A3, A6 и присваешь выбранному диапазону имя content
3. Запускаешь процедуру и в ячейках B1, B3, B6 получаешь номера страниц.
4. Вставляешь строки в данные, снова запускаешь процедуру, обновляешь номера страниц.

Sub test111()
Dim sAr As Range, HP As Long, RowHP As Long, HPCount As Long
ActiveSheet.DisplayPageBreaks = True: ActiveWindow.View = xlPageBreakPreview
HPCount = ActiveSheet.HPageBreaks.Count
HP = 1: RowHP = 66000
If HPCount > 0 Then
RowHP = ActiveSheet.HPageBreaks(HP).Location.Row 'строка с разделителем страницы
End If
For Each sAr In [content]
Do While sAr.Value >= RowHP
HP = HP + 1
If HP <= HPCount Then
RowHP = ActiveSheet.HPageBreaks(HP).Location.Row 'строка с разделителем страницы
Else
RowHP = 66000
End If
Loop
sAr.Offset(, 1) = HP
Next
ActiveWindow.View = xlNormalView
End Sub
С уважением, Сергей Густокашин. Тольятти, Комсофт. ICQ 75307217
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33174196
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergeyvg
1. в строках оглавления(строка 1, 3, 6)
А почему строки через одну?
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33174933
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это, например, если на строку оглавления уйдет несколько строк Excel'я :)
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33175099
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея, насколько я в коде разобрался, здоровская! Но, опять же, мы от многоразового лазанья по прайсу не избавляемся. Только теперь будем смотреть не что на какой странице, а как меняются номера ячеек заголовков. Ведь они тоже могут меняться, если перед заголовком раздела (не первым) добавят/уберут строки с товарами. А что если заголовки в прайсе поименовать и прописать их в оглавлении по имени, а не по номеру ячейки? А номера ячеек потом VBA определять.
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33175133
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея состоит в том, что в формуле вида =СТРОКА(A40) при вставке строк выше ячейки А40, будет меняться ссылка, например при вставке двух строк будет формула =СТРОКА(A42).
А вообще, как определить номера строк, с которых начинается очередной раздел, дело вкуса.
Именование - хорошая идея, вроде content1, content2, потом обращаться в цикле Range("content" & I).
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33175257
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Попробую воплотить.
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33182168
JetSnail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все входит и выходит!
Окончательный вариант кода для случая, когда оглавление и прайс расположены на одном листе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub test111()
Dim sAr As Range, HP As Long, RowHP As Long, HPCount As Long
ActiveSheet.DisplayPageBreaks = True: ActiveWindow.View = xlPageBreakPreview
HPCount = ActiveSheet.HPageBreaks.Count
HP = 1: RowHP = 66000
If HPCount > 0 Then
RowHP = ActiveSheet.HPageBreaks(HP).Location.Row
End If
For Each sAr In [content]
Do While sAr.Precedents.Row >= RowHP
HP = HP + 1
If HP <= HPCount Then
RowHP = ActiveSheet.HPageBreaks(HP).Location.Row
Else
RowHP = 66000
End If
Loop
sAr.Offset(, 1) = HP
Next
ActiveWindow.View = xlNormalView
End Sub

В десятой строке я использовал sAr.Precedents.Row, вместо sAr.Value. Тогда в оглавлении вместо формул типа =СТРОКА(A24), можно просто писать =A24. В этом случае в строке оглавления сразу будет показываться заголовок из ячейки А24 прайса.
Всем спасибо!
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #33849450
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #34081295
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как создать оглавление в Excel?
    #34088803
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел пример создания оглавлений без помощи вба, причем сам лист с содержанием книги при добавлении листа обновляется.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как создать оглавление в Excel?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]