我正在尝试使用多项选择来做某事。我想在每个选定的段落之前添加一些文本,但是当我选择多个不连续的段落时,如果我执行 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 的对象模型根本不支持它。
如果这是您想要提供给用户以使生活更轻松的东西,您需要为该工具提供一种标记段落的方法,以便您的代码可以识别它们。例如,您可以提供一个宏,为每个选择分配一个递增的书签名称(用户选择,然后运行您的宏;对每个段落重复)。然后您的代码可以寻址每个书签并执行操作。为了使这更加用户友好,您可以将宏分配给键盘快捷键和/或功能区/QAT 中的按钮和/或右键单击菜单。
关于vba - 使用多个不连续选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730750/