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语句。
  • 为了跳到下一个,您需要确保该特定代码行是错误的。
  • 如果该错误处理程序跳过了代码的重要行,则您的任务可能无法完美完成。