Изявление на VBA GoTo - Как да използвам GoTo Statement във VBA?

Изявление на Excel VBA GoTo

Операторът VBA GoTo се използва, когато възникне грешка при стартиране на кода, вместо да показва грешка, за да възобнови следващия ред код, като игнорира съобщението за грешка. Има два вида GOTO изрази, единият е да изберете произволен диапазон от работния лист в посочената работна книга, а другият е обработчик на грешки.

За да преодолеем очакваните грешки във VBA, имаме функция, наречена „GOTO“. В тази статия ще видим и двата вида изявления на GoTo.

2 начина за използване на изявление GoTo в кода на VBA

# 1 - Приложение. Метод GoTo

Ако искате да отидете на конкретната работна книга или конкретен работен лист във всички отворени работни книги, можем да използваме метода на заявлението Application.GoTo.

Нека разгледаме синтаксиса на метода Application.GoTo

  • (Справка): Това не е нищо друго освен посочена препратка към клетка. Ако препратката не е предоставена по подразбиране, тя ще ви отведе до последния използван диапазон от клетки.
  • (Превъртане): Това е логичен израз на TRUE или FALSE. Ако стойността е TRUE, тя ще премине през прозореца. Ако стойността е FALSE, тя няма да премине през прозореца.
Пример

Ако искате да отидете до определена клетка в конкретния работен лист, можем да използваме метода Goto. Имам 3 листа на име Jan, Feb и Mar.

Ако искам да отида в клетка C5 в листа Jan, ще използвам по-долу набор от кодове.

Стъпка 1: Стартирайте името на макроса на Excel.

Код:

Sub GoTo_Example1 () Край Sub

Стъпка 2: Стартирайте метода „ Application.GoTo

Код:

Под GoTo_Example1 ()

Приложение

Крайна под

Стъпка 3: В референтния аргумент трябва да посочим името на работния лист, а в този работен лист трябва да споменем конкретната клетка.

Код:

Sub GoTo_Example1 () Application.Goto Reference: = Работни листове ("Jan"). Диапазон ("C5") End Sub

Стъпка 4: Споменете свитъка като TRUE.

Код:

Sub GoTo_Example1 () Application.Goto Reference: = Работни листове ("Jan"). Обхват ("C5"), превъртане: = True End Sub

Стъпка 5: Сега стартирайте този код, като използвате клавиша F5, или можете също да го стартирате ръчно, той ще ви отведе до посочения лист и определена клетка.

Сега ще сменя аргумента за превъртане на FALSE и ще видя промяната, която ще срещне.

Sub GoTo_Example1 () Application.Goto Reference: = Работни листове ("Jan"). Обхват ("C5"), превъртане: = False End Sub

Ако искате да отидете в конкретна работна книга, тогава трябва да споменете и името на работната книга преди името на работната книга.

Sub GoTo_Example1 () Application.Goto Reference: = Работни книги ("Book1.xlsx"). Работни листове ("Jan"). Обхват ("C5"), превъртане: = False End Sub

# 2 - Метод за обработка на грешки

Когато конкретният ред код срещне грешка, тогава VBA спира да изпълнява останалата част от кода и показва съобщението за грешка.

Например, погледнете долния ред код.

Sub GoTo_Example2 () Sheets ("April"). Изтриване на Sheets.Add End Sub

Горният код казва да изтриете листа през април и да добавите нов лист. В активната работна книга, ако има име на лист, наречено април, той ще се изтрие или ще покаже диалоговия прозорец за съобщение за грешка по-долу.

Когато стартирам този код, работната ми книга няма лист, наречен April, така че кодът на VBA не може да намери името на листа и извежда грешката. Понякога трябва да пренебрегнем тази грешка, често, ако няма име на лист, наречено April, тогава трябва да продължим с останалите редове код.

За да премахнем тази грешка, можем да използваме метода GoTo като манипулатор на грешки.

Сега ще модифицирам кода, тъй като грешката при включване преминава към следващия ред.

Sub GoTo_Example2 () При грешка GoTo NextLine Sheets ("април"). Изтриване на NextLine: Sheets.Add End Sub

Ако стартирате това, то ще добави новия лист, въпреки че няма име на лист, наречено April.

Изявлението „On Error GoTo NextLine“ разбира, че ако възникне някаква грешка, то ще премине към следващия ред, а в следващия ред VBA кодът ще добави нов лист.

Неща за запомняне

  • Ако искате да преминете към следващия ред, когато възникне грешката, можете също да използвате изявлението On Error Resume Next VBA.
  • За да преминете към следващия, трябва да сте сигурни, че на този конкретен ред код се очаква грешка.
  • Ако важният ред на кода прескочи с този манипулатор на грешки, вашата задача може да не е завършена перфектно.

Интересни статии...