0
我注意到我的工作表正在放慢速度,发现一些对象是由于某种原因而创建的。我跑到下面的宏以将它们全部删除:VBA删除所有形状错误
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
错误。所以我做了以下,看看有多少对象已经建立:
Dim i As Long
i = ActiveSheet.Shapes.Count
MsgBox CLng(i)
并得到我试图Go To Special
和选择的对象数量41152.,但如果这个数字是正确的我的电脑崩溃试图选择了41K对象一次。
任何建议如何将它们全部删除?
奇怪的是,你有你的表'41152'的形状!并且第一位代码失败。如果你尝试向后反转形状(如下所示):如果x = i为0步骤-1:工作表(“Sheet1”)。Shapes(x).Delete:Next') –
这样也会出现同样的错误。我想知道它是否无法处理一次删除这么多。有没有办法将它限制在前1000个左右?如果它摆脱它们,它会高兴地运行它40次! –
尝试'Activesheet.DrawingObjects.Delete'? – Rory