【问题标题】:Copy shape in Word 2010 without .Select?在没有 .Select 的情况下在 Word 2010 中复制形状?
【发布时间】:2013-01-26 18:50:17
【问题描述】:

是否可以在不使用.Select 的情况下在 Word 2010 中复制形状?根据Dev Center Anchor 属性返回形状的锚定范围。这可能是前进的道路吗?但是,下面的代码会返回错误。

Sub createShape()
    Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)
    myShape.Anchor.Copy
End Sub

【问题讨论】:

    标签: vba ms-word copy-paste word-2010


    【解决方案1】:

    虽然在不选择形状的情况下似乎无法复制形状,但可以在不选择形状的情况下复制形状(这是我首先想要复制它的原因)。下面的代码给了我我想要的东西:

    Sub createShape()
        Set myshape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)
        Set anothershape = myshape.Duplicate
    End Sub
    

    【讨论】:

    • 我将如何将此形状移动到另一个文档:/
    【解决方案2】:

    如果您已经找到了所需的内容,那就太好了,但是您可以通过复制形状所锚定到的段落(或者更确切地说是范围)来复制形状。例如:

    Sub createShape()
       Dim myShape As Shape, myRange As Range
    
       Set myShape = ActiveDocument.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)
       Set myRange = myShape.Anchor.Paragraphs(1).Range
       myRange.Copy
    End Sub
    

    然而,这样做的问题是它会复制段落中您已将其锚定到的任何文本

    您还可以在插入后将形状更改为内联形状,使其与文本相匹配,并且具有更明显的范围,因为锚点有移动的习惯并且通常不可预测。

    【讨论】:

      猜你喜欢
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多