Я заметил, что мой рабочий лист замедлялся вниз, и, по некоторым причинам, было создано несколько объектов. Я побежал следующий макрос, чтобы удалить их все:VBA delete all shapes error
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)
И получил номер 41152. Я пробовал Go To Special
и выбранные объекты, но если это число правильно мой компьютер сбой пытается выбрать более 41K объекты сразу.
Любые предложения по их удалению?
Любопытно, что у вас есть '41152' формы на листе! а также, что первый бит кода выходит из строя. Что произойдет, если вы попытаетесь сделать шаг назад через фигуры (например: «Для x = i до 0 Шаг -1: Таблицы (« Лист1 »). Формы (x). Удалить: Next') –
Получает ту же ошибку и так , Интересно, не справится ли это с удалением этого сразу. Есть ли способ ограничить его до 1000 или около того? Будем счастливо управлять им 40 раз, если он избавится от них! –
Попробуйте 'Activesheet.DrawingObjects.Delete'? – Rory