Istruzione GoTo VBA

Istruzione GoTo VBA di Excel

L' istruzione VBA GoTo viene utilizzata quando si verifica un errore durante l'esecuzione del codice anziché visualizzare l'errore per riprendere la riga di codice successiva ignorando il messaggio di errore. Esistono due tipi di istruzioni GOTO, una per selezionare qualsiasi intervallo del foglio di lavoro nella cartella di lavoro specificata e un'altra per il gestore degli errori.

Per superare gli errori previsti in VBA, abbiamo una funzione chiamata "GOTO". Vedremo entrambi i tipi di dichiarazioni GoTo in questo articolo.

2 modi per utilizzare l'istruzione GoTo nel codice VBA

Puoi scaricare questo modello VBA GoTo Excel qui - Modello VBA GoTo Excel

# 1 - Metodo Application.GoTo

Se si desidera andare alla cartella di lavoro specifica o al foglio di lavoro specifico in tutte le cartelle di lavoro aperte, è possibile utilizzare l'istruzione Application.GoTo metodo.

Diamo un'occhiata alla sintassi del metodo Application.GoTo

  • [Riferimento]: questo non è altro che un riferimento di cella specificato. Se il riferimento non è fornito per impostazione predefinita, ti porterà all'ultimo intervallo di celle utilizzato.
  • [Scroll]: questa è un'affermazione logica di VERO o FALSO. Se il valore è TRUE scorrerà la finestra, se il valore è FALSE non scorrerà la finestra.
Esempio

Se vuoi andare a una cella specifica nel foglio di lavoro specifico, possiamo usare il metodo Goto. Ho 3 fogli denominati Jan, Feb e Mar.

Ora, se voglio andare alla cella C5 nel foglio di gennaio, userò il set di codice seguente.

Passaggio 1: avvia il nome della macro di Excel.

Codice:

 Sub GoTo_Example1 () End Sub 

Passaggio 2: avvia il metodo " Application.GoTo "

Codice:

Sub GoTo_Example1 ()

Application.Goto

End Sub

Passaggio 3: nell'argomento di riferimento dobbiamo specificare il nome del foglio di lavoro e in quel foglio di lavoro, dobbiamo menzionare la cella specifica.

Codice:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") End Sub 

Passaggio 4: menziona lo scorrimento come VERO.

Codice:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = True End Sub 

Passaggio 5: ora esegui questo codice utilizzando il tasto F5 oppure puoi anche eseguire questo codice manualmente, ti porterà al foglio e alla cella specificati.

Ora cambierò l'argomento di scorrimento in FALSE e vedrò il cambiamento che incontrerà.

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub 

Se si desidera passare a una cartella di lavoro specifica, è necessario menzionare anche il nome della cartella di lavoro prima del nome della cartella di lavoro.

 Sub GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub 

# 2 - Metodo di gestione degli errori

Quando la particolare riga di codice rileva un errore, VBA interrompe l'esecuzione del resto del codice e mostra il messaggio di errore.

Ad esempio, guarda la riga di codice sottostante.

 Sub GoTo_Example2 () Sheets ("April"). Delete Sheets.Add End Sub 

Il codice sopra dice di eliminare il foglio di aprile e aggiungere un nuovo foglio. Nella cartella di lavoro attiva, se è presente un nome di foglio chiamato April, verrà eliminato oppure mostrerà la finestra di dialogo del messaggio di errore sottostante.

Quando eseguo questo codice, la mia cartella di lavoro non aveva un foglio chiamato April, quindi il codice VBA non è riuscito a trovare il nome del foglio e genera l'errore. A volte è necessario ignorare questo errore perché spesso se non esiste un nome di foglio chiamato April, è necessario continuare con le altre righe di codice.

Per eliminare questo errore possiamo utilizzare il metodo GoTo come gestore degli errori.

Ora modifico il codice come In caso di errore, vado alla riga successiva

 Sub GoTo_Example2 () On Error GoTo NextLine Sheets ("April"). Elimina NextLine: Sheets.Add End Sub 

Ora, se lo esegui, aggiungerà il nuovo foglio anche se non c'è un nome di foglio chiamato April.

L'istruzione "On Error GoTo NextLine" capisce che se si verifica un errore salterà alla riga successiva e nella riga successiva il codice VBA deve aggiungere un nuovo foglio.

Cose da ricordare

  • Se si desidera passare alla riga successiva quando si verifica l'errore, è possibile utilizzare anche l'istruzione VBA On Error Resume Next.
  • Per passare al successivo, è necessario essere sicuri che quella particolare riga di codice sia prevista un errore.
  • Se la riga importante del codice salta con questo gestore degli errori, l'attività potrebbe non essere completata perfettamente.