使用Excel VBA删除图片
答
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
shape.Delete
Next
答
最简单的方法:
Activesheet.Pictures.Delete
或
Activesheet.Shapes.Delete
根据对象的类型,您的图片是。
删除所有图片效率更高,然后迭代(循环)并逐个删除它们。
+1
'Activesheet.Shapes.Delete'发生错误(对象不支持此方法) – 2016-01-25 00:00:37
答
删除所有图片或其他形状,你可以遍历所有这些,检查类型:
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
我测试过它和它的作品 – 2010-12-18 21:42:17
注意,这会删除数据透视图(也可能是其他任何你选择喜欢的图片)。 – 2010-12-20 13:43:33
为了防止它,假设您使用默认图表名称(“图表1”,“图表2”,...),您可以使用inString函数在循环内进行测试。 InStr(0,shape.name,“Chart”),所以如果不包含名字中的“Chart”,请跳过它。 – 2010-12-20 18:00:11