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

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

Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется...
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
19.07.2005, 12:19:18
    #33173101
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Stepler
Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется...


Что значит поправить номера страниц? Проблема в том и состоит, чтобы они сами "поправлялись" при изменении прайса. Я сделал, как ты предлагаешь, но оглавление пока не переносил на новый лист, т. е. ссылки оглавления остались рабочими. Но номера страниц остались такими, какими были в Word, а в Excel у меня другая разбивка. Закрытие-открытие документа не помогает. А мне нужно, чтобы оглавление автоматически отслеживало изменение положения заголовков, так-как при добавлении/удалении данных они "ездят" со страницы на страницу.
...
Рейтинг: 0 / 0
19.07.2005, 12:42:48
    #33173204
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
У меня в Word (2002) обновление оглавления происходит с помощью панели инструментов "Структура", а в Excel такой панели нет...
...
Рейтинг: 0 / 0
19.07.2005, 12:56:52
    #33173276
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Мне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться. Я могу список заголовков в оглавлении в ручную создать, он редко меняется. А в строки заголовков в следующий столбец "вытащить" как нибудь вышеуказанное свойство соответствующих ячеек. А потом сделать, чтобы они автоматически обновлялись, наприер, при открытии листа с оглавлением. Правда VBA для меня темный лес...
...
Рейтинг: 0 / 0
19.07.2005, 13:38:03
    #33173422
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
JetSnailМне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться.
правильно кажется
activecell.Parent.name
...
Рейтинг: 0 / 0
19.07.2005, 14:07:28
    #33173529
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
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
19.07.2005, 17:05:46
    #33174150
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Добрый день!
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
19.07.2005, 17:20:36
    #33174196
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
sergeyvg
1. в строках оглавления(строка 1, 3, 6)
А почему строки через одну?
...
Рейтинг: 0 / 0
20.07.2005, 08:11:46
    #33174933
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Это, например, если на строку оглавления уйдет несколько строк Excel'я :)
...
Рейтинг: 0 / 0
20.07.2005, 10:18:13
    #33175099
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Идея, насколько я в коде разобрался, здоровская! Но, опять же, мы от многоразового лазанья по прайсу не избавляемся. Только теперь будем смотреть не что на какой странице, а как меняются номера ячеек заголовков. Ведь они тоже могут меняться, если перед заголовком раздела (не первым) добавят/уберут строки с товарами. А что если заголовки в прайсе поименовать и прописать их в оглавлении по имени, а не по номеру ячейки? А номера ячеек потом VBA определять.
...
Рейтинг: 0 / 0
20.07.2005, 10:34:16
    #33175133
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Идея состоит в том, что в формуле вида =СТРОКА(A40) при вставке строк выше ячейки А40, будет меняться ссылка, например при вставке двух строк будет формула =СТРОКА(A42).
А вообще, как определить номера строк, с которых начинается очередной раздел, дело вкуса.
Именование - хорошая идея, вроде content1, content2, потом обращаться в цикле Range("content" & I).
...
Рейтинг: 0 / 0
20.07.2005, 11:12:26
    #33175257
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Спасибо! Попробую воплотить.
...
Рейтинг: 0 / 0
25.07.2005, 11:21:50
    #33182168
JetSnail
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
Все входит и выходит!
Окончательный вариант кода для случая, когда оглавление и прайс расположены на одном листе:

Код: 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
12.07.2006, 22:10:06
    #33849450
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
...
Рейтинг: 0 / 0
25.10.2006, 17:55:31
    #34081295
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
...
Рейтинг: 0 / 0
28.10.2006, 19:54:20
    #34088803
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать оглавление в Excel?
нашел пример создания оглавлений без помощи вба, причем сам лист с содержанием книги при добавлении листа обновляется.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как создать оглавление в Excel? / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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