VBA MS-Word使用多个不连续选择?

时间:2015-11-16 08:02:45

标签: vba ms-word word-vba multipleselection

我正在尝试用多项选择做点什么。我想在每个选定的段落之前添加一些文本,但是当我选择多个不连续的段落时,如果我选择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

1 个答案:

答案 0 :(得分:3)

Word根本无法做到你想做的事情。开发人员希望这样做,因为2003年引入了多个选项(我认为它可能是2007版本)。 Word的对象模型根本不支持它。

新的Java Script API可以做到这一点BTW。

如果您希望向用户提供这些内容以使生活更轻松,则需要为该工具提供标记段落的方法,以便您的代码可以识别它们。例如,您可以提供一个宏,为每个选择分配一个递增的书签名称(用户选择,然后运行您的宏;重复每个段落)。然后,您的代码可以处理每个书签并执行操作。为了使用户更友好,您可以将宏指定给功能区/ QAT和/或右键单击菜单中的键盘快捷键和/或按钮。