VBA避免错误条件

示例

当发生运行时错误时,良好的代码应处理该错误。最佳的错误处理策略是编写代码以检查错误情况,并避免执行导致运行时错误的代码。

减少运行时错误的一个关键因素是编写可以做一件事的小程序。过程失败的原因越少,整个代码的调试就越容易。


避免运行时错误91-未设置对象或带块变量:

在分配对象引用之前使用对象时,将引发此错误。一个可能具有接收对象参数的过程:

Private Sub DoSomething(ByVal target As Worksheet)

   Debug.Printtarget.Name

End Sub

如果target未分配引用,则上面的代码将引发错误,可以通过检查对象是否包含实际的对象引用来轻松避免该错误:

Private Sub DoSomething(ByVal target As Worksheet)

    If target Is Nothing Then Exit Sub

   Debug.Printtarget.Name

End Sub

如果target未分配参考,则永远不会使用未分配的参考,并且不会发生错误。

当一个或多个参数无效时,这种提前退出过程的方式称为保护子句


避免运行时错误9-下标超出范围:

在数组边界之外访问数组时,会引发此错误。

Private Sub DoSomething(ByVal index As Integer)

   Debug.PrintActiveWorkbook.Worksheets(index)

End Sub

如果给出的索引大于中的工作表数量ActiveWorkbook,则上述代码将引发运行时错误。一个简单的保护子句可以避免这种情况:

Private Sub DoSomething(ByVal index As Integer)

    If index > ActiveWorkbook.Worksheets.Count Or index <= 0 Then Exit Sub

   Debug.PrintActiveWorkbook.Worksheets(index)

End Sub


可以通过以下方法避免大多数运行时错误:使用它们之前先仔细验证我们正在使用的值,并使用一条简单的If语句在另一个执行路径上进行分支-在不作任何假设并验证过程参数的警卫子句中,甚至在正文中较大的程序。

以上是 VBA避免错误条件 的全部内容, 来源链接: utcz.com/z/337913.html

回到顶部