Работа с множественным дискретным выделением

Я пытаюсь сделать что-то с множественным выбором. Я хочу добавить текст перед каждым выделенным абзацем, но когда я выбираю несколько прерывистых абзацев, если я делаю Selection.Paragraphs.Count, я всегда получаю «1».

Как я могу работать со всеми абзацами отдельно?

Пример:

Paragraph1(Selected first)
Paragraph2
Paragraph3(Selected second)

Что я получил, когда попытался добавить текст в начале этих абзацев:

Paragraph1
Paragraph2
TEXTParagraph3

Что я действительно хочу получить:

TEXTParagraph1
Paragraph2
TEXTParagraph3

Я работаю так:

sub x()
  dim p as paragraph
  for each p in selection.paragraphs
    p.range.insertbefore("TEXT")
  next
End sub

person FormaInnova Cursos    schedule 16.11.2015    source источник
comment
Чувак... последнее предложение, которое ты отредактировал... это ошибка из вежливости? XDDD   -  person FormaInnova Cursos    schedule 16.11.2015


Ответы (1)


Word просто не может делать то, что вы от него хотите. Разработчики хотели этого с тех пор, как в 2003 году был введен множественный выбор (я думаю, что это было, возможно, это была версия 2007 года). Объектная модель Word просто не поддерживает это.

Если это то, что вы хотите предоставить пользователю, чтобы облегчить жизнь, вам нужно предоставить инструменту возможность помечать абзацы, чтобы ваш код мог их распознавать. Например, вы можете предоставить макрос, который присваивает увеличивающееся имя закладки каждому выбору (пользователь выбирает, а затем запускает ваш макрос; повторите для каждого абзаца). Затем ваш код может обращаться к каждой закладке и выполнять действия. Чтобы сделать это более удобным для пользователя, вы можете назначить макрос сочетанию клавиш и/или кнопке на ленте/QAT и/или контекстному меню.

person Cindy Meister    schedule 16.11.2015