Δήλωση VBA GoTo | Πώς να χρησιμοποιήσετε το GoTo Statement στο VBA;

Δήλωση GoTo του Excel VBA

Η δήλωση VBA GoTo χρησιμοποιείται όταν παρουσιάζεται σφάλμα κατά την εκτέλεση του κώδικα αντί να εμφανίζεται σφάλμα για συνέχιση της επόμενης γραμμής κώδικα αγνοώντας το μήνυμα σφάλματος. Υπάρχουν δύο είδη δηλώσεων GOTO το ένα είναι να επιλέξετε οποιοδήποτε εύρος του φύλλου εργασίας στο καθορισμένο βιβλίο εργασίας και ένα άλλο είναι ο χειριστής σφαλμάτων.

Για να ξεπεράσουμε τα αναμενόμενα σφάλματα στο VBA, έχουμε μια λειτουργία που ονομάζεται "GOTO". Σε αυτό το άρθρο θα δούμε και τα δύο είδη δηλώσεων GoTo.

2 τρόποι χρήσης της δήλωσης GoTo στον κώδικα VBA

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA GoTo Excel εδώ - Πρότυπο VBA GoTo Excel

# 1 - Μέθοδος Application.GoTo

Εάν θέλετε να μεταβείτε στο συγκεκριμένο βιβλίο εργασίας ή σε συγκεκριμένο φύλλο εργασίας σε όλα τα ανοιχτά βιβλία εργασίας, τότε μπορούμε να χρησιμοποιήσουμε τη μέθοδο δήλωσης Application.GoTo.

Ας δούμε τη σύνταξη της μεθόδου Application.GoTo

  • [Reference]: Αυτό δεν είναι παρά μια καθορισμένη αναφορά κελιού. Εάν η αναφορά δεν παρέχεται από προεπιλογή, θα σας μεταφέρει στο εύρος κελιών που χρησιμοποιήσατε την τελευταία φορά.
  • [Κύλιση]: Αυτή είναι μια λογική δήλωση TRUE ή FALSE. Εάν η τιμή είναι ΑΛΗΘΕΙΑ, θα μετακινηθεί στο παράθυρο, εάν η τιμή είναι ΛΑΘΟΣ, δεν θα μετακινηθεί στο παράθυρο.
Παράδειγμα

Εάν θέλετε να μεταβείτε σε ένα συγκεκριμένο κελί στο συγκεκριμένο φύλλο εργασίας, μπορούμε να χρησιμοποιήσουμε τη μέθοδο Goto. Έχω 3 φύλλα με όνομα Jan, Φεβ και Μαρ.

Τώρα αν θέλω να πάω στο κελί C5 στο φύλλο Jan θα χρησιμοποιήσω το παρακάτω σύνολο κώδικα.

Βήμα 1: Ξεκινήστε το όνομα μακροεντολής excel.

Κώδικας:

 Υπο GoTo_Example1 () End Sub 

Βήμα 2: Ξεκινήστε τη μέθοδο " Application.GoTo "

Κώδικας:

Υπο GoTo_Example1 ()

Εφαρμογή. Πηγαίνετε

Τέλος Υποτ

Βήμα 3: Στο όρισμα αναφοράς πρέπει να καθορίσουμε το όνομα του φύλλου εργασίας και σε αυτό το φύλλο εργασίας, πρέπει να αναφέρουμε το συγκεκριμένο κελί.

Κώδικας:

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

Βήμα 4: Αναφέρετε την κύλιση ως Αληθινή.

Κώδικας:

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

Βήμα 5: Τώρα εκτελέστε αυτόν τον κωδικό χρησιμοποιώντας το πλήκτρο F5 ή μπορείτε επίσης να εκτελέσετε αυτόν τον κωδικό χειροκίνητα, θα σας μεταφέρει στο καθορισμένο φύλλο και στο καθορισμένο κελί.

Τώρα θα αλλάξω το όρισμα κύλισης σε FALSE και θα δω την αλλαγή που θα αντιμετωπίσει.

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

Εάν θέλετε να μεταβείτε σε ένα συγκεκριμένο βιβλίο εργασίας, τότε πρέπει να αναφέρετε και το όνομα του βιβλίου εργασίας πριν από το όνομα του βιβλίου εργασίας.

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

# 2 - Μέθοδος χειρισμού σφαλμάτων

Όταν η συγκεκριμένη γραμμή κώδικα συναντά ένα σφάλμα, τότε το VBA σταματά να εκτελεί τον υπόλοιπο κώδικα και εμφανίζει το μήνυμα σφάλματος.

Για παράδειγμα, δείτε την παρακάτω γραμμή κώδικα.

 Υπο GoTo_Example2 () Sheets ("April"). Διαγραφή φύλλων. Προσθήκη τελικού υποτμήματος 

Ο παραπάνω κωδικός λέει να διαγράψετε το φύλλο Απρίλιο και να προσθέσετε ένα νέο φύλλο. Στο ενεργό βιβλίο εργασίας εάν υπάρχει οποιοδήποτε όνομα φύλλου που ονομάζεται Απρίλιος θα διαγραφεί ή αλλιώς θα εμφανιστεί το παρακάτω πλαίσιο διαλόγου μηνύματος σφάλματος.

Όταν εκτελούσα αυτόν τον κώδικα, το βιβλίο εργασίας μου δεν είχε φύλλο που ονομάζεται Απρίλιος, οπότε ο κωδικός VBA δεν μπόρεσε να βρει το όνομα του φύλλου και ρίχνει το σφάλμα. Μερικές φορές πρέπει να αγνοήσουμε αυτό το σφάλμα, γιατί συχνά αν δεν υπάρχει όνομα φύλλου που ονομάζεται Απρίλιος, τότε πρέπει να συνεχίσουμε με τις άλλες γραμμές κώδικα.

Για να εξαλείψουμε αυτό το σφάλμα μπορούμε να χρησιμοποιήσουμε τη μέθοδο GoTo ως πρόγραμμα χειρισμού σφαλμάτων.

Τώρα θα τροποποιήσω τον κωδικό καθώς το σφάλμα On πηγαίνει στην επόμενη γραμμή

 Υπο GoTo_Example2 () On Error GoTo NextLine Sheets ("April"). Διαγραφή NextLine: Sheets.Προσθήκη End Sub 

Τώρα, εάν το εκτελέσετε, θα προσθέσει το νέο φύλλο παρόλο που δεν υπάρχει όνομα φύλλου που ονομάζεται Απρίλιος.

Η δήλωση "On Error GoTo NextLine" κατανοεί ότι εάν παρουσιαστεί κάποιο σφάλμα θα μεταβεί στην επόμενη γραμμή και στην επόμενη γραμμή ο κώδικας VBA είναι να προσθέσει ένα νέο φύλλο.

Πράγματα που πρέπει να θυμάστε

  • Εάν θέλετε να μεταβείτε στην επόμενη γραμμή όταν παρουσιαστεί το σφάλμα, μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση On Error Resume Next VBA.
  • Για να μεταβείτε στο επόμενο, πρέπει να είστε σίγουροι ότι η συγκεκριμένη γραμμή κώδικα αναμένεται σφάλμα.
  • Εάν η σημαντική γραμμή του κώδικα παραλείψει με αυτόν τον χειριστή σφαλμάτων, τότε η εργασία σας ενδέχεται να μην ολοκληρωθεί τέλεια.