Как вставить заголовки в список без смещения нумерации начальных заголовков списка - PullRequest
0 голосов
/ 25 сентября 2019

В моем тестировании копирование и вставка текста с заголовками, которые не являются частью нумерованного списка, в другой файл слов, который имеет нумерованный список, заставляет слово автоматически интегрировать вставленные заголовки как новые «элементы» списка.Таким образом, он создает дополнительную нумерацию (в дополнение к нумерации, которая могла быть раньше) для каждого из этих заголовков и сдвигает нумерацию последующих начальных заголовков.

Скопированный текст: To be Copied Text Перед вставкой: Text before paste После вставки: After paste Есть ли способ не сместить эти начальные заголовки при сохранении этой структуры списка?

Я подумал о методе: ConvertNumbersToText

Это помешало бы слову автоматически нумеровать все, что подходит для этого списка.Но есть ли другое решение?Я бы предпочел не использовать его, потому что я не знаю, как включить «автоматическую нумерацию».

[Edit 1]: Еще одно решение, которое работало, было вставка и форматирование с типом восстановленияниже: wdFormatOriginalFormatting

Однако это исправление не будет работать всякий раз, когда я буду вставлять заголовки, в которых есть списки.Вместо этого при копировании заголовков со списками внутри их тел обычная вставка (Selection.Paste) не смещает нумерацию и не создает новую нумерацию для вставленных списков.

1 Ответ

1 голос
/ 26 сентября 2019

Насколько я знаю, нет способа скопировать стиль, который затем можно изменить.Но можно создать новый стиль, основанный на другом, а затем изменить его, чтобы он немного отличался (т. Е. Удалить нумерацию).

Следующий фрагмент кода

  1. объявляети создает два объекта Style: один для стиля Заголовок 1, другой для нового стиля.
  2. Свойство BaseStyle для нового стиля затем устанавливается на стиль Заголовка 1, что означает, что он забирает всесвойств базового стиля.
  3. Затем он освобождается от нумерации, устанавливая для ListTemplate значение Nothing

Когда я копирую / вставляю это в документ, в котором заголовок 1 нумеруется, этот текст непронумерованы, но в остальном выглядит так же.Его также можно получить в оглавлении (оглавление также можно изменить на , а не , если это необходимо).

Sub CopyStyleAndUnlinkNumbering()
    Dim sH1 As Word.style
    Dim sH1Copy As Word.style

    Set sH1 = ActiveDocument.styles(WdBuiltinStyle.wdStyleHeading1)
    Set sH1Copy = ActiveDocument.styles.Add("Heading 1 Copy", Word.WdStyleType.wdStyleTypeParagraph)
    sH1Copy.BaseStyle = sH1
    sH1Copy.LinkToListTemplate ListTemplate:=Nothing
End Sub
...