Tipi di errori in VBA per Excel

Gli utenti incontreranno spesso diversi tipi di errori in VBA. Di seguito, offriamo diverse strategie per affrontarle e risolverle. Esamineremo le tecniche che puoi utilizzare per interrogare il tuo codice durante il test, nonché i metodi per rilevare gli errori in fase di esecuzione.

Tipi di errori in VBA per Excel

Testare e rintracciare diversi tipi di errori nel codice VBA può essere dispendioso in termini di tempo e frustrante. Non è raro sentire i programmatori Programmazione La programmazione è il processo di scrittura di istruzioni che un computer deve eseguire. È simile a una ricetta per gli esseri umani. Una ricetta contiene un elenco di azioni che dicono che oltre il 30% del loro tempo viene dedicato ai test.

Nel tempo migliorerai nell'evitare gli errori, ma è improbabile che scriverai un codice perfetto, la prima volta. Imparando come evitare, gestire e rintracciare gli errori VBA, risparmierai un sacco di tempo in futuro.

Tipi di errori VBA

Per semplificare le cose, abbiamo classificato i tipi di errori di codifica in tre gruppi. Per ogni gruppo, esploreremo alcuni esempi e poi discuteremo come potresti indagarli e risolverli.

1. Errori di sintassi : una riga di codice specifica non è stata scritta correttamente

2. Errori di compilazione : problemi che si verificano quando si mettono insieme righe di codice, anche se le singole righe di codice sembrano avere senso

3. Errori di runtime - Quando il codice è generalmente corretto in linea di principio, ma un'azione intrapresa dall'utente o i dati utilizzati porta a errori imprevisti.

Cosa sono gli errori di sintassi?

Gli errori di sintassi sono il modo in cui VBA ti dice se il tuo codice ha senso, ai livelli più elementari. Possiamo fare un semplice confronto con le regole per scrivere una frase in inglese:

  • È richiesto un soggetto .
  • È richiesto un verbo .
  • All'inizio è richiesta una lettera maiuscola .
  • La punteggiatura è richiesta alla fine.
  • Oggetti, aggettivi e altre caratteristiche grammaticali sono opzionali.

Jane ha trovato 18 errori nel suo codice VBA .

In modo simile, VBA impone determinate regole su ciò che è richiesto in determinate situazioni. Ad esempio, quando si avvia un'istruzione IF condizionale di base nel codice, è necessario replicare le seguenti regole di sintassi per la prima riga di un'istruzione IF;

  • Deve iniziare con If
  • Il prossimo deve essere un test logico , ad esempio x> 10
  • Infine, deve finire con la parola quindi

Se NumberErrors> 20 allora

Se infrangi le regole di inglese o VBA di cui sopra, la tua grammatica (inglese) o sintassi (VBA) è considerata errata.

Come identificare un errore di sintassi

L'editor VBA evidenzia in rosso gli errori di sintassi, consentendoti di identificarli e risolverli facilmente. Inoltre, se provi a eseguire il codice o ad avviare una nuova riga, ti verrà presentato il messaggio di errore di sintassi di seguito.

Errore di sintassi di base:

Sintassi di base erro

Finestra di messaggio di errore di sintassi:

Finestra di messaggio di errore di sintassi

Per assicurarti che i controlli avvengano durante la digitazione, abilita "Controllo sintassi automatico" nel menu Opzioni.

Controllo automatico della sintassi

Come risolvere gli errori di sintassi

Gli errori di sintassi rappresentano errori nel modo in cui viene scritta una riga specifica del codice. Devono essere corretti prima di poter eseguire il codice. Con l'esperienza, il testo rosso sarà tutto ciò di cui hai bisogno per individuare l'errore. Ma se sei ancora bloccato, cerca online "if statement syntax vba" o qualsiasi variazione si adatti alle tue esigenze e troverai molti esempi della riga specifica che stai cercando di scrivere.

Cosa sono gli errori di compilazione?

Gli errori di compilazione si riferiscono a un gruppo più ampio di errori VBA, che includono errori di sintassi. Gli errori di compilazione identificano anche i problemi con il codice se considerato nel suo insieme. La sintassi di ogni singola riga può essere corretta, ma quando vengono messe insieme, le righe del codice non hanno senso. Gli errori di compilazione vengono evidenziati durante la compilazione o l'esecuzione del codice.

Come identificare un errore di compilazione

Quando esegui il codice VBA, gli errori di compilazione verranno presentati in una finestra di dialogo VBA come negli esempi seguenti.

In alternativa, se il progetto è lungo o complesso e prevede più routine, può essere utile compilare il codice prima di eseguirlo. Previene le situazioni in cui metà del codice viene eseguito correttamente e quindi viene visualizzato un errore. È possibile compilare il codice VBA facendo clic sul menu Debug → Compila progetto VBA.

Esempio 1

Un errore di compilazione per una parte mancante "End if" di un'istruzione IF. Ogni singola riga del codice è corretta, ma insieme non rappresentano un'istruzione IF completa.

Errore di compilazione - Esempio 1

Esempio 2

In questo esempio, il processo di compilazione VBA ha rilevato un errore di sintassi, evidenziato in rosso. VBA indica che nel codice seguente manca una parentesi di chiusura sulla funzione.

Errore di compilazione - Esempio 2

Esempio 3

Gli errori di compilazione sono comuni quando si utilizza Option Explicit e si verificano quando una variabile non è stata definita in modo esplicito. Con Option Explicit attivato, è necessaria un'istruzione Dim per dichiarare tutte le variabili prima che possano essere utilizzate nel codice.

Errore di compilazione - Esempio 3

Come risolvere gli errori di compilazione

Gli errori di compilazione VBA impediranno l'esecuzione delle routine interessate. Fino a quando non li risolverai, il tuo codice non potrà essere interpretato correttamente da VBA. Le finestre dei messaggi di errore spesso forniscono consigli più utili rispetto agli errori di sintassi.

Se non è immediatamente ovvio quale sia il problema dal messaggio di errore, prova a utilizzare il Centro assistenza di Microsoft per avere un'idea di come esattamente dovrebbe essere scritta la tua dichiarazione o funzione. Di seguito è riportato un esempio del messaggio di errore "Blocca se senza fine se" sul sito Web di Microsoft.

Blocca se senza fine se

Cosa sono gli errori di runtime?

Dopo aver corretto gli errori di sintassi e di compilazione, sei pronto per iniziare a testare o eseguire correttamente il tuo codice per vedere quanto bene esegue le azioni oi calcoli desiderati. Chiamiamo il periodo di test, o esecuzione dal vivo del codice, "runtime".

Gli errori di runtime non possono essere rilevati semplicemente guardando il codice; sono il risultato dell'interazione del codice con gli input oi dati specifici in quel momento.

Gli errori di runtime sono spesso causati da dati imprevisti passati al codice VBA, tipi di dati non corrispondenti, divisione per zeri imprevisti e intervalli di celle definiti non disponibili. Gli errori di runtime sono anche i più vari e complessi da rintracciare e correggere.

Come identificare gli errori di runtime

Debug VBA VBA: come eseguire il debug del codice Durante la scrittura e l'esecuzione del codice VBA, è importante che l'utente impari a eseguire il debug degli errori di codice. L'aspettativa dell'utente di Excel è che la funzione codice evidenzi il codice del problema in giallo e ci dia un piccolo indizio su cosa sta causando il problema.

Esempio 1

Sebbene il codice seguente divida semplicemente un numero per l'altro, in alcuni casi non sarà possibile. Ad esempio, se la cella A1 = 2 e la cella A2 = 0, non è possibile dividere per zero. La casella degli errori di runtime include un pulsante di debug, che evidenzia il codice del problema.

Errore di runtime - Esempio 1

Errori di runtime - Esempio 1a

Esempio 2

In questo esempio, ho creato un array per raccogliere i nomi di n società nel mio foglio di lavoro. Ho quindi provato a fare riferimento al sesto elemento, che può o non può esistere in fase di esecuzione. VBA presenta un messaggio di errore di runtime e mi consente di premere Debug per indagare sul problema.

Errore di runtime - Esempio 2

Una volta premuto Debug, VBA evidenzia la riga di codice che causa il problema. Ora sta a me utilizzare il messaggio "Indice fuori intervallo" per capire cosa non va. L'errore di pedice fuori intervallo generalmente significa che il tuo codice è buono in linea di principio, ma che l'elemento specifico che stai cercando non può essere trovato. Più comunemente, accadrà quando si fa riferimento a celle o intervalli in Excel, nonché agli array nel codice VBA.

Errore di runtime - Esempio 2a

Per assicurarti che la funzione di debug sia abilitata, nel menu Opzioni> Generale> Trapping degli errori, lo stato predefinito dovrebbe essere "Interrompi in caso di errori non gestiti". Lascia l'opzione selezionata.

Interruzione sugli errori non gestiti

Come risolvere gli errori di runtime

Poiché gli errori di runtime sono vari e di natura complessa, anche le soluzioni sono varie. I due metodi generali per ridurre gli errori di runtime sono:

Trapping degli errori

È una buona idea riflettere sui possibili scenari che il tuo codice potrebbe incontrare. Ancora meglio è testare il codice su dati di pratica o con utenti reali. Ti consentirà di riconoscere tali scenari nel tuo VBA, con il codice che si ramifica in risultati diversi, a seconda se esistono errori.

Esempio 1

Qui, la riga "On Error Resume Next" forza il codice a continuare, anche se viene rilevato un errore. Quindi utilizziamo il test If Err> 0 per creare un messaggio di avviso, solo se l'errore esiste. "On Error Goto 0" ripristina VBA al suo stato predefinito.

Trapping degli errori - Esempio 1

Esempio 2

Qui, il codice calcola il reddito giornaliero, in base a un reddito mensile e un numero definito di giorni. Se il numero di giorni non viene fornito, passiamo a un punto definito nel nostro codice chiamato "NoDaysInMonthProvided:" dove utilizziamo il numero medio di giorni in un mese come presupposto di base. Sebbene sia semplicistico, mostra chiaramente come intercettare un errore e passare a un punto diverso nel codice.

Trapping degli errori - Esempio 2

Istruzioni per l'utente chiare

Una documentazione chiara ed etichette del foglio di lavoro garantiranno che i tuoi utenti interagiscano con il tuo modello nel modo desiderato. Aiuterà a prevenirli durante l'immissione di testo, invece di numeri, o di lasciare zeri che potrebbero in seguito influire sul codice.

Sommario

Esistono tre tipi chiave di errori in VBA che possono influire sul codice in modi diversi. È importante attivare le opzioni di rilevamento degli errori di VBA, come il debugger e il controllo automatico della sintassi. Ti aiuteranno a stabilire la posizione e la natura degli errori.

Più risorse

Finance è il fornitore ufficiale della certificazione CBCA ™ CBCA ™ globale Certified Banking & Credit Analyst (CBCA) ™ L'accreditamento Certified Banking & Credit Analyst (CBCA) ™ è uno standard globale per gli analisti del credito che copre finanza, contabilità, analisi del credito, analisi del flusso di cassa , modelli di alleanze, rimborsi di prestiti e altro ancora. programma di certificazione, progettato per aiutare chiunque a diventare un analista finanziario di livello mondiale. Per continuare a far progredire la tua carriera, le risorse aggiuntive di seguito saranno utili:

  • #REF Errori di Excel #REF Errori di Excel #REF Gli errori di Excel causano grossi problemi nei fogli di calcolo. Scopri come trovare e correggere gli errori #REF in Excel in questo rapido tutorial con esempi e screenshot. A #REF! errore ("ref" sta per riferimento) è il messaggio visualizzato da Excel quando una formula fa riferimento a una cella che non esiste più, causato dall'eliminazione di celle che
  • Esempi di VBA di Excel Esempi di VBA di Excel VBA di Excel consente all'utente di creare macro che automatizzano i processi all'interno di Excel. Questa guida utilizzerà esempi VBA di Excel per mostrare come registrare una macro impostando la macro, come dichiarare le variabili e come fare riferimento ai dati.
  • Suggerimenti per scrivere VBA in Excel Suggerimenti per scrivere VBA in Excel Di seguito sono elencati nove suggerimenti per scrivere VBA in Excel. VBA per Excel introduce innumerevoli possibilità per i calcoli personalizzati e l'automazione.
  • Metodi VBA Metodi VBA Un metodo VBA è un pezzo di codice allegato a un oggetto, una variabile o un riferimento dati VBA che indica a Excel quale azione eseguire in relazione a quell'oggetto. Copia, incolla e selezione sono solo alcuni esempi di metodi VBA che possono essere eseguiti.

Raccomandato

Crackstreams è stato chiuso?
2022
Il centro di comando MC è sicuro?
2022
Taliesin sta lasciando il ruolo critico?
2022