我有下面的代码,我试图只删除一张图片,但它正在删除工作表上的所有项目(复选框,文本框,按钮等)。
我还应该提一下,表格上有两张图片,但是我希望它只删除第二张图片。
Private Sub DeletePictures()
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
shape.Delete
Next
End Sub
答案 0 :(得分:3)
您需要找到形状的名称。
在Excel 2010中:
接下来,将代码更新为仅处理指定的形状:
Private Sub DeletePictures()
Dim shape As Excel.shape
For Each shape In ActiveSheet.Shapes
If shape.Name = "Picture 1" Then
shape.Delete
End If
Next
End Sub
如果要删除所有图片,可以检查形状类型:
If shape.Type = 13 Then
或If shape.Type = msoPicture Then
形状类型的完整列表:
https://msdn.microsoft.com/en-us/library/aa432678(v=office.12).aspx
修改强>
那里有片刻......很明显,一旦你知道了形状的名称就没有必要遍历表格上的所有形状(感谢@CallumDA指出明显的评论)。 :)
ActiveSheet.Shapes("Picture 1").Delete
- 是您需要的所有代码。