VBA Excel将多个形状复制到剪贴板
我有一个Excel工作表,有四个形状和几个button来运行macros。 形状命名为topCircle,leftCircle,rightCircle和midCircle。
想要其中一个button来运行一个macros,将四个形状复制到剪贴板,粘贴到其他Office文档。
已经虽然各种MSDN文章(如https://msdn.microsoft.com/en-us/library/office/ff940375.aspx )但有麻烦。 试图模仿链接文章的例子,我写了这样的:
Set myDocument = Worksheets("Overall") myDocument.Shapes.Range(Array("leftCircle", "rightCircle", "topCircle", "midCircle")).Copy
但是得到一个错误“对象不支持这个属性或方法”。 也尝试了一些其他的东西没有运气。 任何想法如何得到这个工作? 干杯!
看来,要从Excel工作表中复制多个形状,您有3个选项:
选项1 :使用Select
首先select所有Shapes
,然后复制Selection
:
myDocument.Shapes.Range(Array("leftCircle", "rightCircle", "topCircle", "midCircle")).Select Selection.Copy
选项2 :使用Group
对所有选定的形状进行分组,然后将它们复制在一起,然后使用Ungroup
将其拆分:
With myDocument.Shapes.Range(Array("leftCircle", "rightCircle", "topCircle", "midCircle")) .Group.Copy ' paste to wherever you want .Ungroup End With
选项3 :使用For Each MyShape In myDocument.Shapes
中循环遍历myDocument
工作表中的所有Shapes
,并且如果对Shape.Name
Shape.Name之一进行了Shape.Name
请将其复制:
Dim MyShape As Shape For Each MyShape In myDocument.Shapes Select Case MyShape.Name Case "leftCircle", "rightCircle", "topCircle", "midCircle" MyShape.Copy ' paste to wherever you want End Select Next MyShape