Gestione degli errori in Excel VBA - Macro semplici di Excel

Sommario

Di seguito esamineremo due programmi in Excel VBA. Un programma semplicemente ignora gli errori. L'altro programma continua l'esecuzione su una riga specificata dopo aver riscontrato un errore.

Situazione:

Entrambi i programmi calcolano la radice quadrata dei numeri.

Radice quadrata 1

Aggiungi le seguenti righe di codice al pulsante di comando "Radice quadrata 1".

1. Innanzitutto, dichiariamo due oggetti Range. Chiamiamo gli oggetti Range rng e cell.

Dim rng As Range, cella As Range

2. Inizializziamo l'oggetto Range rng con l'intervallo selezionato.

Imposta rng = Selezione

3. Vogliamo calcolare la radice quadrata di ogni cella in un intervallo selezionato casualmente (questo intervallo può essere di qualsiasi dimensione). In Excel VBA, puoi utilizzare il ciclo For Each Next per questo. Aggiungi le seguenti righe di codice:

Per ogni cella In rng
Cella successiva

Nota: rng e cella sono scelti a caso qui, puoi usare qualsiasi nome. Ricorda di fare riferimento a questi nomi nel resto del codice.

4. Aggiungere la seguente riga di codice al ciclo.

In caso di errore Riprendi Avanti

5. Successivamente, calcoliamo la radice quadrata di un valore. In Excel VBA, possiamo usare la funzione Sqr per questo. Aggiungi la seguente riga di codice al ciclo.

cella.Valore = Sqr(cella.Valore)

6. Uscire dall'editor di Visual Basic e testare il programma.

Risultato:

Conclusione: Excel VBA ha ignorato le celle contenenti valori non validi come numeri negativi e testo. Senza utilizzare l'istruzione "On Error Resume Next" si otterrebbero due errori. Fare attenzione a utilizzare l'istruzione "On Error Resume Next" solo quando si è sicuri che ignorare gli errori sia corretto.

Radice quadrata 2

Aggiungi le seguenti righe di codice al pulsante di comando "Radice quadrata 2".

1. Lo stesso programma di Square Root 1 ma sostituire "On Error Resume Next" con:

In caso di errore GoTo InvalidValue:

Nota: InvalidValue viene scelto casualmente qui, puoi usare qualsiasi nome. Ricorda di fare riferimento a questo nome nel resto del codice.

2. Al di fuori del ciclo For Each Next, aggiungi prima la seguente riga di codice:

Esci Sotto

Senza questa riga, il resto del codice (codice di errore) verrà eseguito, anche se non ci sono errori!

3. Excel VBA continua l'esecuzione alla riga che inizia con 'InvalidValue:' dopo aver riscontrato un errore (non dimenticare i due punti). Aggiungi la seguente riga di codice:

Valore non valido:

4. Manteniamo il nostro codice di errore semplice per ora. Mostriamo un MsgBox con del testo e l'indirizzo della cella in cui si è verificato l'errore.

MsgBox "impossibile calcolare la radice quadrata nella cella " & cell.Address

5. Aggiungere la seguente riga per indicare a Excel VBA di riprendere l'esecuzione dopo aver eseguito il codice di errore.

Riprendi Avanti

6. Uscire dall'editor di Visual Basic e testare il programma.

Risultato:

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave