使用多个不连续选择

Working with multiple discontinuous selection

我正在尝试用多个 selection 做一些事情。我想在每个 selected 段落之前添加一些文本,但是,当我 select 多个不连续的段落时,如果我这样做 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

Word 根本无法执行您希望它执行的操作。自 2003 年引入多项选择以来,开发人员一直希望如此(我认为是,可能是 2007 版)。 Word的对象模型根本不支持

如果这是您想要提供给用户以使生活更轻松的东西,您需要为该工具提供一种标记段落的方法,以便您的代码可以识别它们。例如,您可以提供一个宏,为每个选择分配一个递增的书签名称(用户选择,然后运行您的宏;对每个段落重复)。然后您的代码可以寻址每个书签并执行操作。为了使它更加用户友好,您可以将宏分配给键盘快捷键 and/or Ribbon/QAT and/or 右键菜单中的按钮。