本文的宏程序,来自伟大的"ExcelHome"网站(http://club.excelhome.net/forum.php),
我这里只是根据其提供的程序,追加注释以及自己的理解
工作簿中有可能之前插入了很多插入对象,比如图片,形状,折线图等等,
当一个工作簿中存在大量无用的插入对象时,文件体积会变得很大,而一个个的选中--删除,又太好费时间.
可以使用以下宏程序,一步删除所有插入对象
'删除所有sheet中的形状
Sub DelAllShapes()
Dim ws As Worksheet
Dim sp As Shape
Dim n As Double
Dim Content As String
For Each ws In Worksheets
For Each sp In ws.Shapes
sp.Delete
n = n + 1
Next
Content = Content & "工作表" & ws.Name & " 删除了" & n & " 个对象" & vbCrLf
n = 0
Next
MsgBox Content
End Sub
或者
'删除当前sheet中的形状
Sub DelShapes()
Dim sp As Shape, n
For Each sp In ActiveSheet.Shapes
sp.Delete
n = n + 1
Next sp
MsgBox "共删除了" & n & "个对象"
End Sub
补充:
其实我们也可以用"定位"来一次性选中当前sheet的所有对象.
快捷键F5,点击"定位条件"按钮,在弹出的窗口中,选中"对象",然后确定
此时,当前sheet中所有对象就都被选中了