【问题标题】:Macro to copy paste 12 times repeatedly重复复制粘贴12次的宏
【发布时间】:2017-08-17 19:25:05
【问题描述】:

我想创建一个宏来重复相同的段落 12 次,然后移动到下一个,重复上述功能直到文档结束。

我试过了,现在我想为下面的宏创建一个循环,直到文档结束,所以非常感谢任何帮助:

Sub SelectRange()
Selection.Paragraphs(1).Range.Copy
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Paste
Selection.Next(Unit:=wdParagraph, Count:=1).Select

End Sub

【问题讨论】:

  • 查看 Paragraphs 的 MSDN 文档...特别是paragraphs.range.text 和paragraphs.add
  • 嗯...“直到文档结束”是什么意思?您意识到每次粘贴所选内容时文档都会增加一个段落,对吧?
  • @Comintern ..是的,我理解这样做的目的......原因不是在文档中复制粘贴一个段落 12 次,而是我想创建一个宏,将每个段落复制 12 次移动到接下来,然后再次复制 12 次,然后继续,直到所有段落都被复制 12 次......非常感谢任何帮助:)
  • 段落的顺序重要吗?您可以复制整个文档并粘贴 12 次​​span>
  • @Slai 是的,这很重要,这就是我要求宏的原因。

标签: vba loops ms-word


【解决方案1】:

对于这个特定的问题,我会使用@Corith_Malin 的答案,但会稍作调整。您必须为文档上的所有当前段落创建一个容器(在这种情况下,我将使用我创建的带有后期绑定的 ArrayList)。在容器中包含所有段落后,您可以遍历它们并使用之前提供的循环粘贴它们,如下所示:

Sub SelectRange()

'Declaration and assignation of the ArrayList
Dim arrList as Object
Set arrList = CreateObject("System.Collections.ArrayList")

'Loop through each paragraph and store it on the ArrayList
For Each par In ActiveDocument.Paragraphs
    arrList.Add (par)
Next

'Loop through each stored paragraph
For Each Item in arrList
    Item.Range.Copy

    'Loop 12 times and perform a paste operation
    For i = 1 To 12
        Selection.Paste
    Next

Next

End Sub

请测试一下,让我知道你的 cmets。它可以在我的电脑上运行(程序员笑话;))

【讨论】:

  • 这正是我想要的:)。非常感谢您让我的生活更轻松。
  • 优秀。请接受答案作为解决方案
【解决方案2】:

如果你只是好奇如何使用循环而不是 Selection.Paste 12 次...

Sub SelectRange()
Selection.Paragraphs(1).Range.Copy

' Loop 12 times and perform a paste operation
For i = 1 To 12
  Selection.Paste
Next i

' You may need to set Count:=12 here to skip over the pasted content.
Selection.Next(Unit:=wdParagraph, Count:=1).Select

End Sub

【讨论】:

  • ..感谢您的建议,但是我要求的是创建一个循环,使上述代码一次又一次地运行,直到所有段落都被复制 12 次,而我没有必须一遍又一遍地运行所有段落。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多