Ho cercato il più possibile online (ad eccezione del sito Web di supporto Microsoft, che è bloccato al lavoro per qualche motivo). Sto cercando di saltare semplicemente un errore. Il mio codice scritto qui è semplificato ma dovrebbe funzionare nello stesso modo.VBA Excel semplice Gestione degli errori
ciò che si suppone il mio codice di fare: Uno dei miei sottomarini crea forme in un ciclo e nomi di loro (btn_1, btn_2, ecc). Ma prima di crearli, chiama un sub che tenta di eliminarli in modo da non creare duplicati. Questa sotto scorre (btn_1, btn_2, ecc) ed elimina le forme utilizzando:
for i = 1 to (a certain number)
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Naturalmente, accade che tale forma non può essere eliminato perché semplicemente non esiste. Ho trovato che la maggior parte delle volte la correzione consigliata consiste nell'aggiungere (per errore riprendere successivamente) prima di impostare la forma, in quanto ricevo un errore che dice che non esiste. Ho provato all'interno del ciclo, prima del ciclo, ecc, in questo modo:
for i = 1 to (a certain number)
On Error Resume Next
Set shp = f_overview.Shapes("btn_" & i)
shp.delete
next
Per quanto ho capito si suppone ciclo proprio attraverso se la forma non esiste, ma ho ancora ottenere lo stesso errore se aggiungo o meno l'errore On resume next! Che cosa sto facendo di sbagliato?
MODIFICA: non vi sono errori quando le forme esistono.
Grazie! Ho continuato a provare i suggerimenti degli altri rispondenti e tutti hanno fallito. Questo è il motivo per cui anche loro hanno fornito informazioni preziose! –
@ DavidGrand'Maison Concordo sul fatto che la gestione degli errori nelle altre risposte sia più pulita e migliore. Ma il tuo codice originale avrebbe dovuto funzionare. – Degustaf