Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 12:35:02

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  Выправление порядка пунктов в списках
Страниц: [1]   Вниз
Печать
Автор Тема: Выправление порядка пунктов в списках  (Прочитано 4827 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vatrushka
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 5


Просмотр профиля
« : 22.04.2014, 08:30:24 »

Доброе утро!

Столкнулся с такой проблемой: Microsoft Word делает сквозную нумерацию пунктов в списках, если вставлять новые куски текста со своими списками в уже существующий текст.

Необходимо сделать так, чтобы все списки начинались со своего первого значения ( "1)" ).

Написал макрос, который задаёт команду "начать заново с 1" для каждого параграфа, написанного в стиле списка ("е) Список-цифры"), но он почему-то не работает:

Код: (vb)
Sub bb1()
Dim p As Paragraph
For Each p In ActiveDocument.Paragraphs
    If p.Style Like "е) Список-цифры" Then
         With p.Range
         With ListGalleries(wdNumberGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = "%1)"
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(1.25)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.89)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = False
            .Italic = False
            .StrikeThrough = False
            .Subscript = False
            .Superscript = False
            .Shadow = False
            .Outline = False
            .Emboss = False
            .Engrave = False
            .AllCaps = False
            .Hidden = False
            .Underline = wdUnderlineNone
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = False
            .Name = ""
        End With
        .LinkedStyle = "е) Список-цифры"
    End With
    ListGalleries(wdNumberGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior
       End With
      End If
Next
End Sub



Думаю, он считает каждый пункт списка новым парафом и пускает команду "начать заново с 1" на каждом пункте, а нужно, чтобы он это делал один раз для каждого списка.

Не могли бы Вы подсказать, как можно реализовать подобную задачу? Буду Вам очень благодарен!

Прикладываю исходный файл (Исходный текст) и тот, который нужно получить (Конечный текст).
« Последнее редактирование: 22.04.2014, 08:33:14 от Vatrushka » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru