Casa Social media Come utilizzare l'istruzione OnError in Excel 2016 VBA - dummies

Come utilizzare l'istruzione OnError in Excel 2016 VBA - dummies

Sommario:

Video: Corso VBA Excel ITA - 29 - Interazioni con l'utente 2025

Video: Corso VBA Excel ITA - 29 - Interazioni con l'utente 2025
Anonim

Quando è necessario gestire gli errori in VBA di Excel, è possibile utilizzare l'istruzione OnError. Tuttavia, ci sono alcune cose che devi sapere prima. È possibile utilizzare l'istruzione On Error in tre modi.

Sintassi Che cosa fa
On Error GoTo etichetta Dopo aver eseguito questa istruzione, VBA riprende l'esecuzione all'istruzione

seguendo l'etichetta specificata. È necessario includere un punto

dopo l'etichetta in modo che VBA lo riconosca come etichetta.

On Error GoTo 0 Dopo aver eseguito questa istruzione, VBA riprende il suo normale comportamento di controllo degli errori

. Utilizzare questa istruzione dopo aver utilizzato una delle

altre istruzioni On Error o quando si desidera rimuovere la gestione degli errori

nella procedura.

On Error Resume Next Dopo aver eseguito questa istruzione, VBA semplicemente ignora tutti gli errori

e riprende l'esecuzione con la successiva istruzione.

Ripresa dopo un errore

In alcuni casi, si desidera semplicemente che la routine termini con garbo quando si verifica un errore. Ad esempio, è possibile visualizzare un messaggio che descrive l'errore e quindi uscire dalla procedura. (L'esempio di EnterSquareRoot5 mostrato in precedenza utilizza questa tecnica.) In altri casi, se possibile, si desidera ripristinare l'errore.

Per recuperare da un errore, è necessario utilizzare un'istruzione Riprendi. Questo cancella la condizione di errore e ti consente di continuare l'esecuzione in qualche luogo. È possibile utilizzare l'istruzione Riprendi in tre modi.

Sintassi Cosa fa
Riprendi L'esecuzione riprende con l'affermazione che ha causato l'errore. Usa

se il tuo codice di gestione degli errori corregge il problema e

va bene continuare.

Riprendi Avanti L'esecuzione riprende con l'istruzione immediatamente successiva all'istruzione

che ha causato l'errore. Questo essenzialmente ignora l'errore

.

Riprendi etichetta L'esecuzione riprende dall'etichetta specificata.

L'esempio seguente utilizza un'istruzione Resume dopo che si è verificato un errore:

Sub EnterSquareRoot6 () Dim Num As Variant Dim Msg As String Dim Ans As Integer TryAgain: 'Imposta la gestione degli errori On Error GoTo BadEntry 'Richiedi un valore Num = InputBox ("Inserisci un valore") Se Num = "" Quindi Esci da Sub "Inserisci la radice quadrata di ActiveCell. Valore = Sqr (Num) Esci Sub BadEntry: Msg = Err. Numero & ":" & Errore (numero errato) Msg = Msg & vbNewLine & vbNewLine Msg = Msg & "Assicurarsi che sia selezionato un intervallo," Msg = Msg & "il foglio non è protetto," Msg = Msg & "e inserisci un valore non negativo. "Msg = Msg & vbNewLine & vbNewLine &" Riprova? "Ans = MsgBox (Msg, vbYesNo + vbCritical) Se Ans = vbYes Then Resume TryAgain End Sub

Questa procedura ha un'altra etichetta: TryAgain.Se si verifica un errore, l'esecuzione continua con l'etichetta BadEntry e il codice visualizza il messaggio seguente. Se l'utente risponde facendo clic su Sì, viene attivata l'istruzione Riprendi e l'esecuzione torna all'etichetta TryAgain. Se l'utente fa clic su No, la procedura termina.

Se si verifica un errore, l'utente può decidere se riprovare.

Si noti che il messaggio di errore include anche il numero dell'errore, insieme alla descrizione dell'errore "ufficiale".

L'istruzione Resume cancella la condizione di errore prima di continuare. Per vedere questo, prova a sostituire la seguente istruzione per la penultima dichiarazione nell'esempio precedente:

Se Ans = vbYes Then GoTo TryAgain

Il codice non funziona correttamente se usi GoTo piuttosto che Resume. Per dimostrare, inserire un numero negativo. Si ottiene il prompt di errore. Fare clic su Sì per riprovare e quindi immettere un altro numero negativo . Questo secondo errore non viene intrappolato perché la condizione di errore originale non è stata cancellata.

Gestione degli errori in breve

Per aiutarti a mantenere tutte queste attività di gestione degli errori dirette, ecco un riassunto rapido e sporco. Un blocco di codice di gestione degli errori ha le seguenti caratteristiche:

  • Inizia immediatamente dopo l'etichetta specificata nell'istruzione On Error.

  • Dovrebbe essere raggiunto dalla tua macro solo se si verifica un errore. Ciò significa che è necessario utilizzare una dichiarazione come Exit Sub o Exit Function immediatamente prima dell'etichetta.

  • Potrebbe richiedere un'istruzione Riprendi. Se si sceglie di non interrompere la procedura quando si verifica un errore, è necessario eseguire un'istruzione Resume prima di tornare al codice principale.

Sapere quando ignorare gli errori

In alcuni casi, è perfettamente corretto ignorare gli errori. Ecco quando entra in gioco l'istruzione On Error Resume Next.

Il seguente esempio scorre attraverso ogni cella nell'intervallo selezionato e converte il valore nella sua radice quadrata. Questa procedura genera un messaggio di errore se una cella nella selezione contiene un numero o un testo negativo:

Sub SelectionSqrt () Dim cella As Range If TypeName (Selection) <> "range" Then Exit Sub For Each cell Nella cella Selection. Valore = Sqr (valore cella) Fine cella successiva Sub

In questo caso, è possibile saltare semplicemente una cella che contiene un valore che non è possibile convertire in una radice quadrata. Puoi creare ogni sorta di capacità di controllo degli errori utilizzando le strutture If-Then, ma puoi escogitare una soluzione migliore (e più semplice) semplicemente ignorando gli errori che si verificano.

La seguente routine ottiene ciò utilizzando l'istruzione On Error Resume Next:

Sub SelectionSqrt () Dim cella As Range If TypeName (Selection) <> "range" Then Exit Sub On Error Riprendi Next For Each cell In Selection cellula. Valore = Sqr (valore cella) Fine cella successiva Sub

In generale, è possibile utilizzare un'istruzione On Error Resume Next se si ritiene che gli errori siano innocui o irrilevanti per l'attività.

Come utilizzare l'istruzione OnError in Excel 2016 VBA - dummies

Scelta dell'editore

Come impostare gli attributi per una proprietà dichiarata dell'app iOS - manichini

Come impostare gli attributi per una proprietà dichiarata dell'app iOS - manichini

È Possibile impostare alcuni attributi di proprietà quando dichiari una proprietà per la tua app iOS. Dai un'occhiata per scoprire maggiori dettagli sugli attributi che puoi impostare durante la programmazione. Setter semantica / proprietà Queste proprietà specificano come deve essere gestita la memoria della variabile di istanza: strong (simile a retain, che è stato utilizzato prima di ARC) crea un accessor ...

Come osservare gli avvisi di memoria insufficiente nella tua app iOS - dummies

Come osservare gli avvisi di memoria insufficiente nella tua app iOS - dummies

Se hai fatto tutto correttamente, in una grande app iOS, potresti semplicemente esaurire la memoria. Quando si verifica questa situazione, il sistema invia una notifica di memoria insufficiente alla tua app, ed è qualcosa a cui devi prestare attenzione. Se non lo fai, è una ricetta affidabile per il disastro. UIKit offre diversi modi per te ...

Come impostare le preferenze Xcode per la tua app iOS - dummies

Come impostare le preferenze Xcode per la tua app iOS - dummies

Xcode ti offre molte opzioni . Probabilmente non cambierai nessuno di questi fino a quando non avrai un po 'più di esperienza di programmazione per le app iOS sotto la cintura, ma alcune opzioni meritano davvero di essere pensate adesso. Le seguenti operazioni descrivono come impostare alcune delle preferenze che potrebbero essere interessate. Seguire questi passaggi per ...

Scelta dell'editore

Dati Magazzino: un esempio ODS - dummies

Dati Magazzino: un esempio ODS - dummies

Ecco un esempio di data warehousing per aiutarti a comprendere ODS (dati operativi negozio). Supponiamo che tu lavori in una grande società finanziaria che fornisce una varietà di servizi alle élite di aziende e persone in tutto il mondo. La tua azienda è cresciuta fino alla sua forma attuale a seguito di una serie di fusioni e acquisizioni ...

Decisioni relative ai dati esistenti della tua azienda - dummy

Decisioni relative ai dati esistenti della tua azienda - dummy

Quando inizi a pianificare una soluzione di data warehouse per la tua azienda, vorrai scovare un inventario completo di file di estrazione che riempiano il ruolo del data warehouse preistorico, ognuno dei quali probabilmente servirà le esigenze di una singola organizzazione. Successivamente, tu e gli utenti aziendali avete raggiunto il consenso su ciò che è buono in merito a ...

Hai bisogno di consulenti di Data Warehousing? - dummies

Hai bisogno di consulenti di Data Warehousing? - dummies

Probabilmente avete bisogno di consulenti di data warehousing, non perché le persone all'interno della vostra organizzazione non siano in grado di lavorare con la tecnologia di data warehousing o di completare un progetto senza un aiuto esterno. Un semplice fatto dell'attuale vita IT aziendale travolge fattori come capacità e conoscenza: questa è un'era basata sulla consulenza, semplice e semplice. Dai primi anni '80, ...

Scelta dell'editore

Come scattare foto in time-lapse con la fotocamera digitale - dummies

Come scattare foto in time-lapse con la fotocamera digitale - dummies

Imaging time-lapse è semplice: devi solo impostare la tua fotocamera digitale e scattare una foto ogni tanto per creare una sequenza di foto time-lapse. Creare foto time-lapse è semplice come premere un pulsante:

Come utilizzare luce esistenti quando si scattano foto digitali - manichini

Come utilizzare luce esistenti quando si scattano foto digitali - manichini

Se non si ha accesso a apparecchi di illuminazione per le tue foto digitali, puoi regolare la luce esistente (chiamata luce ambientale dai fotografi) per creare l'effetto desiderato. Lavora con la luce esistente - luce che "trova" in una posizione (al contrario delle luci dello studio):

Come scattare ritratti di animali - manichini

Come scattare ritratti di animali - manichini

Puoi creare meravigliose foto di animali selvatici ingrandendo e ingrandendo prendendo un ritratto. Simile al ritratto di una persona, vuoi che l'animale sia messo a fuoco, contro uno sfondo sfocato e non in competizione con il soggetto. Creare un ritratto di un animale richiede pazienza e pratica, ...