声明“Error”类型的变量的示例&用过的

时间:2013-09-02 12:19:29

标签: vba excel-vba excel

我想做一个测试,其中声明了Error类型的变量,稍后在VBA程序中使用。我在活动工作表的单元格=1/0中写了(5,6),因此它的值为#DIV/0!,然后我尝试运行以下代码:

Sub try()
   Dim x As Error
   y = ActiveSheet.Cells(5, 6).Value
   MsgBox TypeName(y)
   x = ActiveSheet.Cells(5, 6).Value
End Sub

MsgBox确实为Error打印y,但是,在xRun-time error "91": Object variable or With block variable not set的作业行中出现了错误。

有人可以告诉我这里有什么问题,或者给我另一个例子,其中声明变量或类型Error&使用

2 个答案:

答案 0 :(得分:3)

单元格中的错误是错误值,而不是错误对象

使用错误对象:

   Dim x As Error
   Dim n As Long
   ActiveCell.Formula = "=1/0"
   For n = xlEvaluateToError To xlInconsistentListFormula
      Set x = ActiveCell.Errors(n)
      If x.Value Then MsgBox "Error in cell"
   Next n

答案 1 :(得分:0)

从单元格中检索错误消息:

Sub try()
    Dim x As String
    Dim y As Variant
    y = ActiveSheet.Cells(5, 6).Value
    MsgBox TypeName(y)
    If TypeName(y) = "Error" Then
        x = ActiveSheet.Cells(5, 6).Text
        MsgBox x
    End If
End Sub

如果您拥有的只是错误编号,则可以使用Error作为函数来检索错误消息。