VBA删除所有形状的错误

我注意到我的工作表正在放慢速度,发现由于某种原因已经创build了一些对象。 我运行下面的macros来删​​除它们:

Dim Shp as Shape For Each Shp In Worksheets("Sheet1").Shapes Shp.Delete Next Shp 

但是,我不断收到The index into the specified collection is out of bounds错误。 所以我做了以下看看有多less对象已经创build:

 Dim i As Long i = ActiveSheet.Shapes.Count MsgBox CLng(i) 

并收到号码41152.我已经试Go To Special和选定的对象,但如果这个数字是正确的我的电脑崩溃试图一次select超过41K的对象。

任何build议如何将其全部删除?

您可以向后退步,通过Shapes集合将它们从集合Index的最后一个值中删除。

喜欢这个:

 i = Worksheets("Sheet1").Shapes.Count For x = i To 1 Step -1: Worksheets("Sheet1").Shapes(x).Delete: Next