Я искал онлайн столько, сколько мог (за исключением веб-сайта поддержки Microsoft, который почему-то заблокирован на работе). Я пытаюсь просто пропустить ошибку. Мой код, написанный здесь, упрощен, но должен работать одинаково.VBA Excel простая обработка ошибок
Что мой код должен делать: Один из моих сабвуфер создает фигуры в цикле и имена их (btn_1, btn_2 и т.д.). Но перед их созданием он вызывает sub, который пытается удалить их, чтобы не создавать дубликаты. Эта подпрограмма перебирает (btn_1, btn_2 и т.д.) и удаляет форму с помощью:
for i = 1 to (a certain number)
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Конечно, случается, что форма не может быть удалена, потому что она просто не существует. Я обнаружил, что большую часть времени исправленное исправление заключается в том, чтобы добавить (при ошибке возобновить дальше) перед установкой фигуры, так как я получаю сообщение об ошибке, которое не существует. Я попробовал его внутри цикла, перед циклом, и т.д., например, так:
for i = 1 to (a certain number)
On Error Resume Next
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Насколько я понимаю, это, как предполагается петли прямо через, если форма не существует, но я все еще получаю то же самое ошибка, добавляю ли я следующее сообщение об ошибке «Вкл.»! Что я делаю не так?
РЕДАКТИРОВАТЬ: нет ошибок, когда формы существуют.
Спасибо! Я продолжал пробовать предложения других ответчиков, и все провалилось. Вот почему, хотя они также предоставили ценную информацию! –
@ DavidGrand'Maison Я согласен с тем, что обработка ошибок в других ответах чище и лучше. Но ваш исходный код должен сработать. – Degustaf