Всем привет и извините за мой английский: у меня есть макрос, который добавляет разделитель стилей, и он работает нормально, за исключением того, что он добавляет пробел перед абзацем. Как мне изменить макрос так, чтобы он его не добавлял, или если и добавлял, то удалял позже?
Sub SeparadordeEstilos()
With Selection
.InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).Range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Отредактировано:
Большое спасибо, Чарльз, и мои извинения всем за то, что не объяснил все детали. Мне нужно, в многоуровневом списке, два типа абзацев с одинаковой нумерацией. Некоторые с жирным шрифтом, которые появляются в оглавлении, а другие с обычным шрифтом, которые не появляются в TOC. Поэтому я создал два стиля,ПЛЛ Уровень 2жирным шрифтом, который появляется в оглавлении иPLL Уровень 2 notdc, без жирного шрифта, который не отображается в оглавлении, которое применяется автоматически с разделителем стилей при выполнении макроса, который я описал в вопросе. Это единственное решение, которое я нашел, чтобы сделать это, особенно из-за требования непрерывной нумерации.
Все работает отлично, за исключением белого пространства. Это пустое пространство очень плохо в документе, оно не придает ему профессионального оттенка, наоборот, оно придает ему неряшливый вид.
Поэтому мне нужна альтернатива или возможность удалить пустое пространство.
Вотобразец документас проблемой. Я думал, что последовательная нумерация работает нормально, потому что я видел ее при включенном Показывать все, но если я ее выключу, (Показать все), она тоже не работает и устанавливает другую нумерацию.
Редактировать 2
решение1
Вам нужен пробел между двумя абзацами!
Ваш код, запущенный в конце абзаца, перед знаком абзаца, добавляетразделитель стилейи пространство, оформленное в новом стиле.
Когда строка .insertBefore vbCr
пропущена, как предполагаетРеддии запускается в конце абзаца, добавляет разделитель стилей и пробел, удаляя текущий знак абзаца и перенося следующий абзац в новом стиле так, что он выглядит как один абзац, использующий два стиля абзаца.
Пространство, вероятно, необходимо для применения стиля. Во втором случае, безусловно, необходимо фактически отделить текст первого абзаца от текста второго.
Вы действительно хотите избавиться от этого пространства?
Вот ваш измененный макрос:
Sub InsertStyleSeparator()
' Use at end of paragraph just before paragraph mark.
With Selection
' .InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Обратите внимание на добавленный мной комментарий: используйте его в конце абзаца, а не в начале.
Вот вашобразец документа, с помощью макроса.
При использовании с разделителем стилей часть, которая добавляется к абзацу, не имеет собственного номера. Она действует, визуально, как часть абзаца, от которого она отделена разделителем стилей.
решение2
vbCr
это новая строка. Эта строка кода .InsertBefore vbCr
вставляет новую строку перед вашим стилем. Удалите ее, чтобы избежать пробела перед вашим абзацем.