下面我们将看看Excel VBA中的两个程序。一个程序只是忽略错误。遇到错误后,另一个程序将在指定的行继续执行。
情况:
这两个程序都计算数字的平方根。
平方根1
将以下代码行添加到“平方根1”命令按钮。
1.首先,我们声明两个Range对象。我们将Range对象称为rng和cell。
2.我们使用所选范围初始化Range对象rng。
3.我们要计算随机选择范围内的每个像元的平方根(该范围可以是任意大小)。在Excel VBA中,可以为此使用“每个下一个”循环。添加以下代码行:
接着细胞
注意:这里随机选择rng和cell,您可以使用任何名称。请记住在其余代码中引用这些名称。
4.将以下代码行添加到循环中。
5.接下来,我们计算值的平方根。在Excel VBA中,我们可以为此使用Sqr函数。将以下代码行添加到循环中。
6.退出Visual Basic编辑器并测试程序。
结果:
结论:Excel VBA忽略了包含无效值(例如负数和文本)的单元格。如果不使用“ On Error Resume Next”语句,则会出现两个错误。当您确定可以忽略错误时,请小心仅使用“ On Error Resume Next”语句。
平方根2
将以下代码行添加到“平方根2”命令按钮。
1.与平方根1相同的程序,但将“ On Error Resume Next”替换为:
注意:在这里随机选择InvalidValue,您可以使用任何名称。请记住,在其余代码中都使用此名称。
2.在For Each Next循环之外,首先添加以下代码行:
没有这一行,即使没有错误,其余代码(错误代码)也将被执行!
3.遇到错误(不要忘记冒号)后,Excel VBA将从“ InvalidValue:”开头的行继续执行。添加以下代码行:
4.现在,我们使错误代码保持简单。我们显示一个MsgBox,其中包含一些文本和发生错误的单元格的地址。
5.添加以下行,以指示Excel VBA在执行错误代码后恢复执行。
6.退出Visual Basic编辑器并测试程序。
结果: