2010 - [решено] Нумерация каждого списка в документе заново

Аватара пользователя
Казбек

2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Добрый вечер.

Есть документ на 2000 тысячи страниц, doc-формата. Структура документа такова, что через каждые пару страниц встречаются списки. Их все нужно пронумеровать начиная с 1, а не как единый большой список.

Благодарю.
Аватара пользователя
Iska

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Iska »

Раньше было так — назначил потребный список (лучше всего — отдельным стилем), затем в нужном месте ПКМ по абзацу, «Начать заново»:



Скрытый текст

[spoiler]Изображение[/spoiler]




Как в Office 2010 — не знаю, не пробовал.
Аватара пользователя
Казбек

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Iska,



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



Добавлено.

Еще один нюанс, возможно, это поможет реализовать затею. Текст перед списками всегда одинаковый, как и сами списки.
Аватара пользователя
Казбек

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Iska,



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



Добавлено.

Еще один нюанс, возможно, это поможет реализовать затею. Текст перед списками всегда одинаковый, как и сами списки.
Аватара пользователя
Iska

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Iska »

Цитата Iska:



а как Word или макрос определит, что есть список, где его начало и где конец?
2010 - [решено] Нумерация каждого списка в документе заново





Цитата Казбек:



Добавлено.

Еще один нюанс, возможно, это поможет реализовать затею. Текст перед списками всегда одинаковый, как и сами списки.
2010 - [решено] Нумерация каждого списка в документе заново
Аватара пользователя
Казбек

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Цитата Казбек:



Цитата Казбек:

Добавлено.
2010 - [решено] Нумерация каждого списка в документе заново




Минус данной реализации движка в том, что он никак не показывает, ни то, что сообщение, на которое ты отвечаешь, было изменено, ни то, что в тему были добавлены ответы. Увы.



Попробуйте Автоформат. Если не выйдет — пишите, будем думать над макросом.
Аватара пользователя
Iska

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Iska »

Цитата Iska:



Попробуйте Автоформат. Если не выйдет — пишите, будем думать над макросом.
2010 - [решено] Нумерация каждого списка в документе заново




К сожалению, вообще ничего не произошло.
Аватара пользователя
Казбек

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Тогда думайте над алгоритмом и излагайте, мне — образец документа с несколькими реальными примерами списков в архиве.
Аватара пользователя
Iska

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Iska »

Iska,



Структура документа примерно следующая, то есть, весь документ абсолютно цикличен, как в образце. Похожая тема есть
здесь
. Возможно, вам чем-то это поможет.




Цитата Iska:



Тогда думайте над алгоритмом и излагайте
2010 - [решено] Нумерация каждого списка в документе заново




Что-то типа этого
. Согласны?

То есть, я убираю изначально все списки, а потом мы начинаем нумерацию всего, что после слова "додатки" и заканчиваем этот список после слова "довіреності". И так делаем циклично, годиться?
Аватара пользователя
Казбек

Re: 2010 - [решено] Нумерация каждого списка в документе заново

Сообщение Казбек »

Казбек, попробуйте вставить в модуль «ThisDocument» искомого документа и выполнить следующий код макроса:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Option Explicit
Sub Sample()
    Dim objParagraph As Paragraph
    Dim boolStartNum As Boolean
    Dim lngStartCharacter As Long
    Dim lngEndCharacter As Long
    boolStartNum = False
    For Each objParagraph In ThisDocument.Content.Paragraphs
        If StrComp(Trim(Replace(objParagraph.Range.Text, vbCr, "")), "Додатки:", vbTextCompare) = 0 Then
            boolStartNum = True
            lngStartCharacter = objParagraph.Range.Characters.Last.End
        Else
            If boolStartNum Then
                If StrComp(Trim(Replace(objParagraph.Range.Text, vbCr, "")), "Копія довіреності", vbTextCompare) = 0 Then
                    boolStartNum = False
                    lngEndCharacter = objParagraph.Range.Characters.Last.End
                    With ThisDocument.Range(lngStartCharacter, lngEndCharacter).ListFormat
                        .RemoveNumbers NumberType:=wdNumberParagraph
                        .ApplyListTemplate _
                            ListTemplate:=ListGalleries(wdNumberGallery).ListTemplates(1), _
                            ContinuePreviousList:=False, _
                            ApplyTo:=wdListApplyToWholeList, _
                            DefaultListBehavior:=wdWord10ListBehavior
                    End With
                End If
            End If
        End If
    Next
End Sub
Вложения
Example.7z
(12.18 КБ) 0 скачиваний
Example.7z
(12.18 КБ) 0 скачиваний
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»