Home / VBA / VBA GoTo Statement
VBA GoTo statement helps code execution to jump to a specific line within the procedure. In simple words, with the goto statement, VBA jumps to a particular line that is specified by you. For example, if you have specified to jump to the second line go will jump to that line.
How to use VBA GoTo Statement in a Code
- First, you need to use the goto statement.
- After that, you need to define the place where you want to VBA to jump from goto.
- Next, create the tag to create that place in the procedure.
- In the end, add the line(s) of code that you want to get executed.
Sub vba_goto()
GoTo Last Range("A1").Select Last:
Range("A12").Select
End Sub
GoTo to Repeat a Code
You can also use the go to statement to repeat a code using a set of condition.
Sub goto_repeat()
Dim iMessage As String
Question:
iMessage = InputBox("what's the day today?")
If iMessage <> "tuesday" Then
MsgBox ("wrong answer, try again.")
GoTo Question
Else
MsgBox ("that's the right answer.")
End If
End Sub
When you run the above code it asks you for the day name and if you enter anything other than “Tuesday” it will repeat the question. If you look at the code, you can see we have to use the goto statement and the if statement.
Now when the user enters anything other than the right answer, the goto statement makes VBA repeat the code. (but whenever you are using these sorts of codes you need to be extra cautious as it can create an endless loop.
VBA GoTo End
You can also exit a sub using the goto statement.
In the above code, we have used the “last” tag just before the end statement and when VBA reaches the GoTo statement, it makes VBA jump to the “Last” at the end of the procedure.
GoTo Statement to go to a Line in Another Sub Routine
Well, go to statement as quite handy to make VBA jump from one place to another, but it’s not possible to make it go to another procedure in the module.
Переход к заданному диапазону или к процедуре VBA в любой открытой книге Excel с помощью метода Application.Goto, неактивная книга активируется.
Application.Goto — это метод, который активирует указанную книгу, если она неактивна, и выделяет заданный диапазон ячеек или отображает заданную процедуру в редакторе VBA.
Если книга Excel в ссылке для перехода не будет указана, выбор диапазона ячеек или процедуры VBA будет осуществлен в активной книге.
Синтаксис
Синтаксис метода Application.Goto:
Application.Goto (Reference, Scroll) |
Параметры
Параметры метода Application.Goto:
Параметр | Описание |
---|---|
Reference | Ссылка на объект Range или на процедуру VBA. Необязательный параметр. Если этот аргумент опущен, будет отображен последний диапазон, выбранный методом Goto или вручную. |
Scroll | Задает способ прокрутки выбранного диапазона:
Необязательный параметр. Значение по умолчанию — False. |
Примечания
- Заданный диапазон можно выделить с помощью метода Range.Select, но он не работает с прокруткой листа.
- При использовании метода Application.Goto для выделения диапазона ячеек, предыдущие выборы сохраняются (до 4 выборов)*.
- Тесты показали, что методы Application.Goto и Range.Select не работают со свернутыми книгами (Application.WindowState = xlMinimized).
* Просмотреть сохраненные выборы диапазонов ячеек методом Application.Goto можно с помощью свойства Application.PreviousSelections:
Sub PrevSel() Dim i As Byte On Error GoTo Instr For i = LBound(Application.PreviousSelections) To UBound(Application.PreviousSelections) MsgBox Application.PreviousSelections(i).Address Next i Exit Sub Instr: MsgBox «Предыдущих выборов нет» End Sub |
Примеры
Application.Goto для активной книги
Переход к заданному диапазону или к процедуре VBA в активной книге Excel:
‘Отображение процедуры «Test», расположенной в «Module1» активной книги Application.Goto «Module1.Test» ‘Выделение диапазона Application.Goto Sheets(«Лист1»).Range(«A40:E50») Application.Goto Sheets(«Лист1»).Range(«A40:E50»), True |
Application.Goto для любой книги
Переход к заданному диапазону или к процедуре VBA в любой открытой книге Excel:
‘Отображение процедуры «Test», расположенной в «Module1» книги «Книга2.xlsm» Application.Goto «Книга2.xlsm!Module1.Test» ‘Выделение диапазона Application.Goto Workbooks(«Книга2.xlsm»).Sheets(«Лист1»).Range(«A40:E50») Application.Goto Workbooks(«Книга2.xlsm»).Sheets(«Лист1»).Range(«A40:E50»), True |
Permalink
Cannot retrieve contributors at this time
title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|
GoTo statement (VBA) |
vblr6.chm1008935 |
vblr6.chm1008935 |
office |
0fa45435-77cf-91f5-ade4-86ac0eb1a083 |
12/03/2018 |
medium |
Branches unconditionally to a specified line within a procedure.
Syntax
GoTo line
The required line argument can be any line label or line number.
Remarks
GoTo can branch only to lines within the procedure where it appears.
[!NOTE]
Too many GoTo statements can make code difficult to read and debug. Use structured control statements (Do…Loop, For…Next, If…Then…Else, Select Case) whenever possible.
Example
This example uses the GoTo statement to branch to line labels within a procedure.
Sub GotoStatementDemo() Dim Number, MyString Number = 1 ' Initialize variable. ' Evaluate Number and branch to appropriate label. If Number = 1 Then GoTo Line1 Else GoTo Line2 Line1: MyString = "Number equals 1" GoTo LastLine ' Go to LastLine. Line2: ' The following statement never gets executed. MyString = "Number equals 2" LastLine: Debug.Print MyString ' Print "Number equals 1" in ' the Immediate window. End Sub
See also
- Data types
- Statements
[!includeSupport and feedback]
Return to VBA Code Examples
In this Article
- GoTo Examples
- GoTo Multiple Line Labels
- GoTo Error Handler End of Procedure
- GoTo Repeat Code
- VBA GoTo a Line Label in Access VBA
The GoTo Statement in VBA allows you to jump to a line of code.
First create a line label anywhere in your code:
Skip:
Then add to “GoTo” statement to jump to the line label
GoTo Skip
GoTo Examples
This example tests the year. If the year is 2019 or later it will GoTo the Skip line label. This allows you to skip over code if certain conditions are met.
Sub GoTo_Example()
Dim year As Integer
year = 2019
If year >= 2019 Then GoTo Skip
'Process Data for Years < 2019
MsgBox "Year is Prior to 2019"
Skip:
End Sub
GoTo Multiple Line Labels
You can also use GoTo statements to jump to relevant lines of code. Let’s adjust our previous example to go to different code locations based on which year it is:
Sub GoTo_Statement()
Dim year As Integer
year = 2019
If year = 2019 Then
GoTo year2019
ElseIf year = 2010 Then
GoTo year2020
Else
GoTo year2021
End If
year2019:
'Process 2019
MsgBox "Year is 2019"
GoTo EndProc
year2020:
'Process 2020
MsgBox "Year is 2020"
GoTo EndProc
year2021:
'Process 2021+
MsgBox "Year is 2021+"
EndProc:
End Sub
Notice the “GoTo EndProc” before each line label. We added this line of code so that those code sections are skipped unless they are accessed by the relevant “GoTo”.
GoTo Error Handler End of Procedure
Now let’s use Error Handling to go to the end of the procedure if there is an error.
Sub GoTo_OnError ()
Dim i As Integer
On Error GoTo EndProc
i = 5 / 0
MsgBox i
EndProc:
End Sub
GoTo Repeat Code
Our last example will use the GoTo Statement to repeat some code.
Below we’re using a Yes / No Messagebox (Click to learn more) to confirm that the user acknowledges the warning. If they click ‘No’, the message box will be displayed again until they click ‘Yes’ (see GIF below).
Sub GoTo_YesNoMsgBox()
RepeatMsg:
Dim answer As Integer
answer = MsgBox("WARNING: This file was opened as a Read-Only file, meaning any changes you make will not be saved unless/until you have Write-Access rights. " & _
Chr(13) & Chr(13) & "Select File, SaveAs to save a copy before working in this file." & vbNewLine & vbNewLine & "Do you understand?", vbExclamation + vbYesNo, "WARNING!")
If answer = vbNo Then GoTo RepeatMsg 'Repeat until user clicks "Yes"
End Sub
VBA GoTo a Line Label in Access VBA
All of the above examples work exactly the same in Access VBA as in Excel VBA.
Sub TestGoTo()
On Error GoTo ending
DoCmd.OpenForm "FrmClients"
Exit Sub
ending:
MsgBox "Cannot open form"
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
VBA GoTo statement one can use when an error occurs while running the code rather than displaying an error to resume the next line of code by ignoring the error message. There are two kinds of GOTO statements: select any worksheet range in the specified workbook and error handler.
To overcome the anticipated errors in VBA, we have a function called “GOTO.” We will see both kinds of GoTo statements in this article.
Table of contents
- Excel VBA GoTo Statement
- 2 Ways to use GoTo Statement in VBA Code
- #1 – Application.GoTo Method
- Example
- #2 – Error Handler Method
- #1 – Application.GoTo Method
- Things to Remember
- Recommended Articles
- 2 Ways to use GoTo Statement in VBA Code
You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA GoTo Statement (wallstreetmojo.com)
2 Ways to use GoTo Statement in VBA Code
You can download this VBA GoTo Excel Template here – VBA GoTo Excel Template
#1 – Application.GoTo Method
We can use the statement Application if you want to go to the specific workbook or worksheet in all the opened Workbooks.GoTo method.
Let us look at the syntax of the Application.GoTo method.
- [Reference]: This is nothing but a specific cell referenceCell reference in excel is referring the other cells to a cell to use its values or properties. For instance, if we have data in cell A2 and want to use that in cell A1, use =A2 in cell A1, and this will copy the A2 value in A1.read more. If the reference is not there by default, it will take you to the last used cell range.
- [Scroll]: This is a logical statement of TRUE or FALSE. If the value is TRUE, it will scroll through the window. If the value is FALSE, it will not scroll through the window.
Example
We can use the Goto method if you want to go to a specific cell in the worksheet. For example, we have 3 sheets: Jan, Feb, and Mar.
If we want to go to cell C5 in the Jan sheet, we will use the below set of codes.
Step 1: Start the excel macroA macro in excel is a series of instructions in the form of code that helps automate manual tasks, thereby saving time. Excel executes those instructions in a step-by-step manner on the given data. For example, it can be used to automate repetitive tasks such as summation, cell formatting, information copying, etc. thereby rapidly replacing repetitious operations with a few clicks.
read more name.
Code:
Sub GoTo_Example1() End Sub
Step 2: Start the method “Application.GoTo“
Code:
Sub GoTo_Example1()
Application.Goto
End Sub
Step 3: We need to specify the worksheet name in the reference argument. Then, in that worksheet, we need to mention the specific cell.
Code:
Sub GoTo_Example1() Application.Goto Reference:=Worksheets("Jan").Range("C5") End Sub
Step 4: Mention the scroll as TRUE.
Code:
Sub GoTo_Example1() Application.Goto Reference:=Worksheets("Jan").Range("C5"),Scroll:=True End Sub
Step 5: Now, run this code using the F5 key, or you can also run it manually. It will take you to the specified sheet and specified cell.
Now, we will change the scroll argument to FALSE and see the change it will encounter.
Sub GoTo_Example1() Application.Goto Reference:=Worksheets("Jan").Range("C5"), Scroll:=False End Sub
If you want to go to a specific workbook, you need to mention the workbook name before the workbook name.
Sub GoTo_Example1() Application.Goto Reference:=Workbooks("Book1.xlsx").Worksheets("Jan").Range("C5"), Scroll:=False End Sub
#2 – Error Handler Method
When a particular line of code encounters an error, VBA stops executing the rest of the code and shows the error message.
For example, look at the below line of code.
Sub GoTo_Example2() Sheets("April").Delete Sheets.Add End Sub
The above code says to delete the sheet in April and add a new sheet. In the active workbook, if there is any sheet named April, it will delete or show the below error message dialog box.
When we ran this code, the workbook did not have a sheet called April, so the VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more could not find the sheet name and threw the error. Sometimes, we need to ignore this error because often, if there is no sheet name called April, then we need to go on with the other lines of code.
We can use the GoTo method as an error handler to eliminate this error.
We will modify the code as the “On Error” goes to the next line.
Sub GoTo_Example2() On Error GoTo NextLine Sheets("April").Delete NextLine: Sheets.Add End Sub
If we run this, it will add the new sheet even though there is no sheet named April.
The statement “On Error GoTo NextLine” understands that if any error occurs, it will jump to the next line, and in the next line, the VBA code is to add a new sheet.
Things to Remember
- We can also use the On Error Resume Next VBAVBA On Error Resume Statement is an error-handling aspect used for ignoring the code line because of which the error occurred and continuing with the next line right after the code line with the error.read more statement if you want to jump to the next line when the error occurs.
- To jump to the next, we must be sure that that particular line of code expected must be an error.
- If the important line of the code skips with this error handler, we may not finish your task perfectly.
Recommended Articles
This article has been a guide to VBA GoTo. Here we learn how to use the VBA GoTo statement using the Application.GoTo and Error Handler Method along with examples and downloadable Excel template. Below are some useful Excel articles related to VBA: –
- MsgBox in Excel VBA
- Excel VBA On Error Goto 0
- Excel VBA GoTo Statement
- VBA Selection
Excel VBA GoTo Statement
VBA Goto Statement is used for overcoming the predicted errors while we add and create a huge code of lines in VBA. This function in VBA allows us to go with the complete code as per our prediction or assumptions. With the help Goto we can go to any specified code of line or location in VBA. There is two way of doing it which we will see in upcoming examples.
How to Use Excel VBA Goto Statement?
We will learn how to use Excel VBA Goto Statement with a few examples.
You can download this VBA GoTo Excel Template here – VBA GoTo Excel Template
Example #1
The first way of using VBA Goto is by Application.Goto method. With the help of Application.Goto statement we can to any specific location, workbook or worksheet which is opened currently. This statement will look like as below.
- [Reference]: This is nothing but a specified cell reference. If the reference is not provided by default it will take you to the last used cell range.
- [Scroll]: This a logical statement of TRUE or FALSE. If the value is TRUE it will scroll through the window, if the value if FALSE it will not scroll through the window.
For this go to the VBA window and click on Module which is in Insert menu as shown below.
Now it will open a new Module. There write the Subcategory of a macro with the name of Goto as we are performing that code as shown below.
Code:
Sub VBAGoto() End Sub
Now write Application.Goto to enable to application or place where we want to go.
Code:
Sub VBAGoto() Application.Goto End Sub
After that give Reference to any worksheet or workbook and range of cells. Here we have given the range of Cell B3 and Worksheets of named as “VBA Goto”.
Code:
Sub VBAGoto() Application.Goto Reference:=Worksheets("VBA_Goto1").Range("B3"), End Sub
Now for actually going to the mentioned cell we need to add Scroll argument which will directly take us to the specified cell. Now we will change the scroll argument from FALSE as shown below.
Code:
Sub VBAGoto() Application.Goto Reference:=Worksheets("VBA_Goto1").Range("B3"), Scroll:=False End Sub
After running the code using F5 key or manually, we will see cursor will get shifted to cell B3 without changing the orientation of the selected sheet as shown below.
Now we will change Scroll argument from FALSE to TRUE.
Code:
Sub VBAGoto() Application.Goto Reference:=Worksheets("VBA_Goto1").Range("B3"), Scroll:=True End Sub
Initially, we are keeping the cursor at cell A5 as shown below. Now run the complete code using F5 key or manually. We will see the cursor which was at cell A5, is now scrolled up and shifted to cell B3 and the whole table has moved to the top level of sheet starting with the same cell which B3 as shown in below screenshot.
Example #2
There is another way of using VBA Goto argument. Using Goto in VBA by this example, we can skip the argument which is causing an error. For this, insert a new module in VBA and start Subcategory with the name of argument used as shown below. You can use any other name.
Code:
Sub VBAGoto() End Sub
For this, we will consider 3 integers X, Y, and Z by opening Sub category in VBA as shown below.
Code:
Sub VBAGoto() Dim X As Integer, Y As Integer, Z As Integer End Sub
Now also consider some mathematical division where we will divide 10, 20 and 30 with 0, 2 and 4 as shown below.
Code:
Sub VBAGoto() Dim X As Integer, Y As Integer, Z As Integer X = 10 / 0 Y = 20 / 2 Z = 30 / 4 End Sub
If we run the code we will get the same error message of Run-time error 11.
Above error message Run-time error ‘11’ comes only when the written mathematical expression is incorrect. Now to overrule this error, we will use text On Error GoTo with word YResult to skip error message and get the output which works fine as shown below.
Still, our code is not complete. Using Goto with statement “YResult:” will only skip the error line of code. But it will again show the error as Labe not defined as shown below.
Code:
Sub VBAGoto() Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10 / 0 Y = 20 / 2 Z = 30 / 4 End Sub
Now to complete it, we need to define the Label. Label is the part of statement in VBA Coding, which is used when we want to skip a certain portion of code to any defined applicable line of code. As we already have YResult with Goto argument. Then we will insert the same just before integer Y. Now run the code again.
Code:
Sub VBAGoto() Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10 / 0 YResult: Y = 20 / 2 Z = 30 / 4 End Sub
As seen and done, we have not got any error message which means that our code is correct and it is skipping that line of code which was causing an error and giving the output where the correct code has been written. Now to print the result of code need to insert message boxes for each Integer with the help argument MsgBox as shown below.
Code:
Sub VBAGoto() Dim X As Integer, Y As Integer, Z As Integer On Error GoTo YResult: X = 10 / 0 YResult: Y = 20 / 2 Z = 30 / 4 MsgBox X MsgBox Y MsgBox Z End Sub
Once done then run the complete code to see the output. We will the output of division of each defined integers as 0, 10 and 8 as shown in below screenshot as well.
On Error GoTo YResult statement helped us to directly jump to mentioned result point integer as we did for integer Y. And the output for X as 0 shows that there was incorrect statement argument written. We can the Label even before Z but that would give us the result of Z integer only. For X and Y it will again show 0 as output.
Pros of VBA On Error
- We can calculate any mathematical formula even if it is incorrect.
- For bigger coding structures where there are chances or having an error, using GoTo may give correct result even among the line of codes.
- This gives better result as compared to the result obtained from normal excel calculations in spite of having an incorrect argument.
Things To Remember
- Remember to the file in Macro-Enabled Excel file so that we can use created VBA code many and multiple times.
- Compile the written code before implementing with any excel requirement.
- You can assign the written code to any button so that we can quickly click on the button and run the code.
- Use Label as shown in example-2 appropriately so that we will get the result for the complete correct code.
Recommended Articles
This has been a guide to VBA GoTo Statement. Here we discussed how to use Excel VBA GoTo Statement along with some practical examples and downloadable excel template. You can also go through our other suggested articles –
- VBA Loops
- VBA Function
- VBA VLOOKUP
- VBA On Error Goto
Содержание
- Оператор GoTo
- Синтаксис
- Часть
- Remarks
- Ветвление и пробная конструкция
- Пример
- На. GoSub, On. Инструкции GoTo
- Синтаксис
- Замечания
- Пример
- См. также
- Поддержка и обратная связь
- Метод Application.Goto (Excel)
- Синтаксис
- Параметры
- Замечания
- Пример
- Поддержка и обратная связь
- VBA GoTo Statement
- Excel VBA GoTo Statement
- 2 Ways to use GoTo Statement in VBA Code
- #1 – Application.GoTo Method
- #2 – Error Handler Method
- VBA GoTo Statement
- How to use VBA GoTo Statement in a Code
- GoTo to Repeat a Code
- VBA GoTo End
- GoTo Statement to go to a Line in Another Sub Routine
Оператор GoTo
Ветвления безоговорочно к указанной строке процедуры.
Синтаксис
Часть
line
Обязательный. Любая метка строки.
Оператор GoTo может ветвиться только к строкам в процедуре, в которой она отображается. Строка должна иметь метку строки, на которую GoTo можно ссылаться. Дополнительные сведения см. в разделе «Практическое руководство. Операторы меток».
GoTo операторы могут затруднить чтение и обслуживание кода. По возможности используйте вместо нее структуру управления. Дополнительные сведения см. в разделе Поток управления.
Оператор нельзя использовать GoTo для ветвления за пределами For . Next , For Each . Next , SyncLock . Try . End SyncLock Catch . Finally , With . End With , или Using . End Using конструкция на метку внутри.
Ветвление и пробная конструкция
Try Внутри . Catch . Finally Конструкции, следующие правила применяются к ветвлениям с помощью инструкции GoTo .
Блокировка или регион | Ветвление извне | Ветвление изнутри |
---|---|---|
Блок Try | Только из Catch блока той же конструкции 1 | Только за пределами всей конструкции |
Блок Catch | Никогда не допускается | Только за пределами всей конструкции, или к Try блоку того же строительства 1 |
Блок Finally | Никогда не допускается | Никогда не допускается |
1 Если один Try . Catch . Finally Построение вложено в другой блок, Catch блок может ветвить в Try блок на собственном уровне вложения, но не в любой другой Try блок. Вложенный Try . Catch . Finally конструкция должна содержаться полностью в блоке Try Catch конструкции, в которой она вложена.
На следующем рисунке показана одна Try конструкция, вложенная в другую. Различные ветви между блоками двух конструкций указываются как допустимые или недопустимые.
Пример
В следующем примере оператор используется GoTo для ветвления к подписям в процедуре.
Источник
На. GoSub, On. Инструкции GoTo
Ветвь к одной из нескольких заданных строк, зависящая от значения выражения.
Синтаксис
Всписке назначенияДля выраженияGoSub
В спискеназначенияGoTo в выражении
Синтаксис операторов On. GoSub и On. GoTo состоит из следующих частей:
Part | Описание |
---|---|
выражение | Обязательно. Любое числовое выражение, которое вычисляется равным некоторому целому числу от 0 до 255 включительно. Если аргумент expression равен какому-нибудь числу, отличному от целого числа, он округляется, прежде чем будет оценен. |
список назначений | Обязательно. Список номеров строк или меток строк, разделенных запятыми. |
Замечания
Значением аргумента expression определяется, какая строка ветвится в список адресатов destinationlist. Если значение аргумента expression меньше, чем 1 или больше, чем количество элементов в списке, имеет место один из следующих результатов:
Если expression | Then |
---|---|
Равно 0 | Управление передается оператору, следующему за оператором On. GoSub или за оператором On. GoTo. |
Больше, чем количество элементов в списке | Управление передается оператору, следующему за оператором On. GoSub или за оператором On. GoTo. |
Negative | Происходит ошибка. |
Больше, чем 255 | Происходит ошибка. |
Допускается смешивать в одном списке номера строк и метки строк. Используйте столько меток строк и номеров строк, сколько вам нравится в on. GoSub и Включено. GoTo. Однако если задействовать больше меток или номеров, чем вмещается на одной строке, потребуется использовать знак продолжения строки, чтобы продолжить логическую строку на следующей физической строке.
Конструкция Select Case предоставляет более структурированный и гибкий способ выполнения составных ветвлений.
Пример
В этом примере операторы On. GoSub и On. GoTo используются для ветвления на подпрограммы и метки строк, соответственно.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Метод Application.Goto (Excel)
Выбирает любой диапазон или процедуру Visual Basic в любой книге и активирует ее, если она еще не активна.
Синтаксис
expression. Goto (справочник, прокрутка)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Reference | Необязательный | Variant | Назначение. Может быть объектом Range , строкой, содержащей ссылку на ячейку в нотации в стиле R1C1, или строкой, содержащей имя процедуры Visual Basic. Если этот аргумент опущен, назначение будет последним диапазоном, который использовался для выбора метода Goto . |
Scroll | Необязательный | Variant | Значение true для прокрутки окна, чтобы верхний левый угол диапазона отображалось в левом верхнем углу окна. Значение false , чтобы не прокручивать окно. Значение по умолчанию — false. |
Замечания
Этот метод отличается от метода Select следующими способами:
Если вы укажете диапазон на листе, который не находится наверху, Microsoft Excel переключится на этот лист, прежде чем выбрать его. (Если вы используете Команду с диапазоном на листе, который не находится сверху, диапазон будет выбран, но лист не будет активирован).
Этот метод содержит аргумент Scroll , который позволяет прокручивать целевое окно.
При использовании метода Goto предыдущее выделение (перед выполнением метода Goto ) добавляется в массив предыдущих выделенных фрагментов (дополнительные сведения см. в свойстве PreviousSelections ). Используйте эту функцию для быстрого перехода между четырьмя выбранными вариантами.
Метод Select имеет аргумент Replace ; Метод Goto не поддерживает.
Пример
В этом примере выбирается ячейка A154 на листе Лист1, а затем прокручивается лист для отображения диапазона.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
VBA GoTo Statement
Excel VBA GoTo Statement
VBA GoTo statement one can use when an error occurs while running the code rather than displaying an error to resume the next line of code by ignoring the error message. There are two kinds of GOTO statements: select any worksheet range in the specified workbook and error handler.
To overcome the anticipated errors in VBA, we have a function called “GOTO.” We will see both kinds of GoTo statements in this article.
Table of contents
You are free to use this image on your website, templates, etc., Please provide us with an attribution link How to Provide Attribution? Article Link to be Hyperlinked
For eg:
Source: VBA GoTo Statement (wallstreetmojo.com)
2 Ways to use GoTo Statement in VBA Code
#1 – Application.GoTo Method
We can use the statement Application if you want to go to the specific workbook or worksheet in all the opened Workbooks.GoTo method.
Let us look at the syntax of the Application.GoTo method.
- [Reference]: This is nothing but a specific cell referenceCell ReferenceCell reference in excel is referring the other cells to a cell to use its values or properties. For instance, if we have data in cell A2 and want to use that in cell A1, use =A2 in cell A1, and this will copy the A2 value in A1.read more . If the reference is not there by default, it will take you to the last used cell range.
- [Scroll]: This is a logical statement of TRUE or FALSE. If the value is TRUE, it will scroll through the window. If the value is FALSE, it will not scroll through the window.
Example
We can use the Goto method if you want to go to a specific cell in the worksheet. For example, we have 3 sheets: Jan, Feb, and Mar.
If we want to go to cell C5 in the Jan sheet, we will use the below set of codes.
Code:
Step 2: Start the method “Application.GoTo“
Code:
Step 3: We need to specify the worksheet name in the reference argument. Then, in that worksheet, we need to mention the specific cell.
Code:
Step 4: Mention the scroll as TRUE.
Code:
Step 5: Now, run this code using the F5 key, or you can also run it manually. It will take you to the specified sheet and specified cell.
Now, we will change the scroll argument to FALSE and see the change it will encounter.
If you want to go to a specific workbook, you need to mention the workbook name before the workbook name.
#2 – Error Handler Method
When a particular line of code encounters an error, VBA stops executing the rest of the code and shows the error message.
For example, look at the below line of code.
The above code says to delete the sheet in April and add a new sheet. In the active workbook, if there is any sheet named April, it will delete or show the below error message dialog box.
When we ran this code, the workbook did not have a sheet called April, so the VBA code VBA Code VBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task. read more could not find the sheet name and threw the error. Sometimes, we need to ignore this error because often, if there is no sheet name called April, then we need to go on with the other lines of code.
We can use the GoTo method as an error handler to eliminate this error.
We will modify the code as the “On Error” goes to the next line.
If we run this, it will add the new sheet even though there is no sheet named April.
The statement “On Error GoTo NextLine” understands that if any error occurs, it will jump to the next line, and in the next line, the VBA code is to add a new sheet.
Источник
VBA GoTo Statement
VBA GoTo statement helps code execution to jump to a specific line within the procedure. In simple words, with the goto statement, VBA jumps to a particular line that is specified by you. For example, if you have specified to jump to the second line go will jump to that line.
How to use VBA GoTo Statement in a Code
- First, you need to use the goto statement.
- After that, you need to define the place where you want to VBA to jump from goto.
- Next, create the tag to create that place in the procedure.
- In the end, add the line(s) of code that you want to get executed.
GoTo to Repeat a Code
You can also use the go to statement to repeat a code using a set of condition.
When you run the above code it asks you for the day name and if you enter anything other than “Tuesday” it will repeat the question. If you look at the code, you can see we have to use the goto statement and the if statement.
Now when the user enters anything other than the right answer, the goto statement makes VBA repeat the code. (but whenever you are using these sorts of codes you need to be extra cautious as it can create an endless loop.
VBA GoTo End
You can also exit a sub using the goto statement.
In the above code, we have used the “last” tag just before the end statement and when VBA reaches the GoTo statement, it makes VBA jump to the “Last” at the end of the procedure.
GoTo Statement to go to a Line in Another Sub Routine
Well, go to statement as quite handy to make VBA jump from one place to another, but it’s not possible to make it go to another procedure in the module.
Источник