|
|
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Помогите новичку, пожалуйста. Имеется лист Excel с данными (прайс-лист). Необходимо к нему создать лист-оглавление. Причем, при удалении/добавлении строк в лист данных, в оглавлении должны автоматически отображаться изменения нумерации. Заголовки в листе данных никак не выделены. Предполагается, что список оглавления создается вручную, а затем к нему привязываются конкретные ячейки листа с данными. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 12:04:04 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Я бы сделал типа такова: Скопировал бы лист Экселя в Ворд (просто выделил все нужные данные - копировать - вставить в ворд), Перед вставленной таблицей добавил строки (2-3) и в эти строки создал оглавление (вставка - ссылка -оглавление...). Усё енто получившееся выделил бы, скопировал бы и вставил обратно в Эксель. Затем перенес бы оглавление на другой лист.... Stepler (щёлк-щёлк!!) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 12:24:28 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Проблема собственно не в создании оглавления, как такового. А в том, что лист с данными довольно объемный и десять раз на дню изменяется. Причем данные вставляются (или удаляются) в основном не в "хвост", а между старыми. То есть пункты оглавления могут постоянно менять номера страниц. Хотелось бы не в ручную их править, а чтобы при открытии листа с оглавлением умный скрипт пробегал бы по связанным с пунктами оглавления ячейкам, определял бы, на каких теперь они оказались страницах и подставлял бы эти цифирки в оглавление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 15:55:55 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Так чем тебя не устраивает предложенный метод. Может придется в ворде установить заголовки, но енто не так уж сложно... Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется... 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 16:08:42 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Stepler Если ты так сделаешь, как я писал, то останеться подправить (активизировать ссылки (см.макрос)) и подправить №№ страниц. Тогда, хоть вставляй, хоть удаляй, хоть перемещай - оглавление останется... Что значит поправить номера страниц? Проблема в том и состоит, чтобы они сами "поправлялись" при изменении прайса. Я сделал, как ты предлагаешь, но оглавление пока не переносил на новый лист, т. е. ссылки оглавления остались рабочими. Но номера страниц остались такими, какими были в Word, а в Excel у меня другая разбивка. Закрытие-открытие документа не помогает. А мне нужно, чтобы оглавление автоматически отслеживало изменение положения заголовков, так-как при добавлении/удалении данных они "ездят" со страницы на страницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 12:19:18 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
У меня в Word (2002) обновление оглавления происходит с помощью панели инструментов "Структура", а в Excel такой панели нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 12:42:48 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Мне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться. Я могу список заголовков в оглавлении в ручную создать, он редко меняется. А в строки заголовков в следующий столбец "вытащить" как нибудь вышеуказанное свойство соответствующих ячеек. А потом сделать, чтобы они автоматически обновлялись, наприер, при открытии листа с оглавлением. Правда VBA для меня темный лес... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 12:56:52 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
JetSnailМне кажется, у ячейки должно быть какое нибудь свойство, которое указывает, на какой странице листа ячейка находиться. правильно кажется activecell.Parent.name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 13:38:03 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
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 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 14:07:28 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Добрый день! 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 17:05:46 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
sergeyvg 1. в строках оглавления(строка 1, 3, 6) А почему строки через одну? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 17:20:36 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Это, например, если на строку оглавления уйдет несколько строк Excel'я :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 08:11:46 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Идея, насколько я в коде разобрался, здоровская! Но, опять же, мы от многоразового лазанья по прайсу не избавляемся. Только теперь будем смотреть не что на какой странице, а как меняются номера ячеек заголовков. Ведь они тоже могут меняться, если перед заголовком раздела (не первым) добавят/уберут строки с товарами. А что если заголовки в прайсе поименовать и прописать их в оглавлении по имени, а не по номеру ячейки? А номера ячеек потом VBA определять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 10:18:13 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Идея состоит в том, что в формуле вида =СТРОКА(A40) при вставке строк выше ячейки А40, будет меняться ссылка, например при вставке двух строк будет формула =СТРОКА(A42). А вообще, как определить номера строк, с которых начинается очередной раздел, дело вкуса. Именование - хорошая идея, вроде content1, content2, потом обращаться в цикле Range("content" & I). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 10:34:16 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Спасибо! Попробую воплотить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 11:12:26 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
Все входит и выходит! Окончательный вариант кода для случая, когда оглавление и прайс расположены на одном листе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. В десятой строке я использовал sAr.Precedents.Row, вместо sAr.Value. Тогда в оглавлении вместо формул типа =СТРОКА(A24), можно просто писать =A24. В этом случае в строке оглавления сразу будет показываться заголовок из ячейки А24 прайса. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 11:21:50 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2006, 22:10:06 |
|
||
|
Как создать оглавление в Excel?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2006, 17:55:31 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33173422&tid=2184037]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 357ms |

| 0 / 0 |
