【发布时间】:2011-05-27 16:26:26
【问题描述】:
如何删除 Excel 2007 工作表中的所有图片?一个工作代码示例会很棒。
【问题讨论】:
标签: vba excel-2007
如何删除 Excel 2007 工作表中的所有图片?一个工作代码示例会很棒。
【问题讨论】:
标签: vba excel-2007
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
shape.Delete
Next
【讨论】:
activesheet.pictures.delete 就可以了。或者您可以使用循环并添加条件:if shape.type=msopicture or shape.type=msolinkedpicture or shape.type=msoEmbeddedOLEObject then shape.delete
最简单的方法:
Activesheet.Pictures.Delete
或
Activesheet.Shapes.Delete
取决于图片的对象类型。
删除所有图片效率更高,然后迭代(循环)并一张一张删除。
【讨论】:
Activesheet.Shapes.Deletethrow 错误(对象不支持此方法)
要删除所有图片或其他形状,您可以将它们全部迭代并检查类型:
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
Select Case shape.Type
Case msoPicture, msoMedia, msoShapeTypeMixed, msoOLEControlObject, msoAutoShape
shape.Delete
Case Else
'Do nothing
End Select
Next
在我的例子中,这段代码很有用,因为我的工作表中充满了我认为是图片的 msoAutoShape 类型的透明形状。所以,Activesheet.Pictures.Delete 不起作用。
您可以在此链接上找到所有形状类型:http://msdn.microsoft.com/en-us/library/aa432678(v=office.12).aspx
【讨论】: