VBA GoTo声明|如何在VBA中使用GoTo语句?
Excel VBA GoTo语句
VBA转到 语句用于在运行代码时发生错误,而不是显示错误以通过忽略错误消息来恢复下一行代码。 GOTO语句有两种,一种是在指定工作簿中选择工作表的任意范围,另一种是错误处理程序。
为了克服VBA中的预期错误,我们有一个称为“ GOTO”的功能。我们将在本文中看到两种GoTo语句。
在VBA代码中使用GoTo语句的2种方法
您可以在此处下载此VBA GoTo Excel模板– VBA GoTo Excel模板#1 – Application.GoTo方法
如果要转到所有打开的工作簿中的特定工作簿或特定工作表,则可以使用语句Application.GoTo方法。
让我们看一下Application.GoTo方法的语法
- [参考]: 这不过是指定的单元格引用。如果默认情况下未提供参考,它将带您到上次使用的单元格范围。
- [滚动]: 这是TRUE或FALSE的逻辑陈述。如果值为TRUE,它将在窗口中滚动;如果值为FALSE,则将不在窗口中滚动。
例子
如果要转到特定工作表中的特定单元格,可以使用Goto方法。我有3张名为Jan,Feb和Mar的工作表。
现在,如果要转到Jan工作表中的单元格C5,我将使用以下代码集。
步骤1: 启动excel宏名称。
代码:
子GoTo_Example1()结束子
第2步: 启动方法“应用程序”
代码:
子GoTo_Example1()
应用程序。转到
结束子
第三步: 在引用参数中,我们需要指定工作表名称,在该工作表中,我们需要提及特定的单元格。
代码:
Sub GoTo_Example1()Application.Goto参考:= Worksheets(“ Jan”)。Range(“ C5”)End Sub
第4步: 提及滚动为TRUE。
代码:
Sub GoTo_Example1()Application.Goto参考:= Worksheets(“ Jan”)。Range(“ C5”),Scroll:= True End Sub
步骤5: 现在,使用F5键运行此代码,或者您也可以手动运行此代码,它将带您到指定的工作表和指定的单元格。
现在,我将scroll参数更改为FALSE,并看到它将遇到的更改。
Sub GoTo_Example1()Application.Goto参考:= Worksheets(“ Jan”)。Range(“ C5”),滚动:= False End Sub
如果要转到特定的工作簿,则还需要在工作簿名称之前提及该工作簿名称。
Sub GoTo_Example1()Application.Goto参考:= Workbooks(“ Book1.xlsx”)。Worksheets(“ Jan”)。Range(“ C5”),滚动:= False End Sub
#2 –错误处理程序方法
当特定代码行遇到错误时,VBA将停止执行其余代码,并显示错误消息。
例如,看下面的代码行。
Sub GoTo_Example2()Sheets(“ April”)。删除Sheets。添加End Sub
上面的代码表示要删除工作表April并添加一个新工作表。在活动工作簿中,如果有任何名为“ April”的工作表名称,它将被删除,否则将显示以下错误消息对话框。
运行此代码时,我的工作簿中没有名为April的工作表,因此VBA代码找不到工作表名称并引发错误。有时我们需要忽略此错误,因为通常如果没有名为April的工作表名称,那么我们需要继续执行其他代码行。
为了消除此错误,我们可以将GoTo方法用作错误处理程序。
现在,我将代码修改为On error转到下一行
Sub GoTo_Example2()发生错误时转到GoTo NextLine Sheets(“ April”)。删除NextLine:Sheets.Add End Sub
现在,如果运行此命令,即使没有名为April的工作表名称,它也将添加新工作表。
该声明 “出错时转到下一步” 理解如果发生任何错误,它将跳至下一行,而在下一行中,VBA代码将添加新的工作表。
要记住的事情
- 如果要在发生错误时跳至下一行,还可以使用On Error Resume Next VBA语句。
- 为了跳到下一个,您需要确保该特定代码行是错误的。
- 如果该错误处理程序跳过了代码的重要行,则您的任务可能无法完美完成。