1

У меня есть два определенных стиля в Word 2016, которые используются для начальных разделов. Они называются Header_num_1 и Header_num_2. Теперь заголовок сделан так

{ STYLEREF Header_num_1 \* MERGEFORMAT }
{ STYLEREF Header_num_2 \* MERGEFORMAT }

Это позволяет заголовкам разделов появляться в заголовке, например

Introduction
Legal Issues

У меня также есть пустые страницы, которые не имеют заголовков разделов. В этом случае повторяется заголовок, который я не хочу. Любая идея о том, как вставить условие, что пустые страницы не получают заголовок? Можно было бы ввести новый раздел для пустых страниц, но мне интересно, есть ли что-то вроде команды if в VBA.

1 ответ1

1

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

Как только ваша нумерация страниц известна, попросите Word вставить полностью пустую страницу в соответствующую точку, преднамеренно вставив нечетный разрыв страницы или четный разрыв страницы в зависимости от ситуации.

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

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

{ SEQ "blanks{ SECTION }p{ PAGE }" \r1\h }

Тогда в шапке используйте

{ IF { SEQ "blanks{ SECTION }p{ PAGE }" \c = 0 "{ STYLEREF Header_num_1 \*MERGEFORMAT }
{ STYLEREF Header_num_2 \*MERGEFORMAT }" }

Как обычно, все {} должны быть специальными парами фигурных скобок кода поля, которые вы можете вставить в Windows Word, используя ctrl-F9.

В этом случае вам необходимо убедиться, что все поля обновлены, прежде чем Word сможет получить правильные заголовки. Кроме того, Word не особенно «любит» условные выражения в верхних и нижних колонтитулах и не всегда отображает правильные значения во время редактирования.

Это работает только потому, что для последовательности X {SEQ X \c} имеет значение (оно равно 0), даже если в документе нет полей {SEQ} для установки этого значения. Так, если, например, вам нужен пустой раздел 3, страница 4, код поля в теле

{SEQ "blanks {SECTION} p {PAGE}" \r1 \h}

т.е.

{SEQ "blanks3p4" \r1 \h}

В заголовке значение последовательности SEQ "blanks3p4" проверяется только на этой странице. На предыдущей странице Word будет искать значение blanks3p3, которое будет равно 0.

Я не уверен, что это работает для всех форматов нумерации страниц, которые у вас могут быть (некоторые могут привести к неверным именам последовательностей), но, вероятно, это наиболее общий формат, который вы можете использовать. Если вы можете полагаться на простую нумерацию страниц (например, одну последовательность, пронумерованную 1,2,3 ..., то вы можете упростить название до, скажем, «blank {PAGE}»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .