从excel电子表格中将错误读入VBA

时间:2014-06-12 14:49:55

标签: excel vba excel-vba

我试图确定特定单元格是否包含错误值。我一直在尝试使用IsError函数但不确定要使用什么语法。

如果单元格D4包含#N / A,那么我的当前代码为:

Dim curCol As String
Dim tmp As Boolean
curCol = "$D$"
tmp = WorksheetFunction.IsError(TListSheet.Cells(curCol & "4").Values)

上面的最后一行结束函数执行,导致调用它的单元格中的#VALUE。 TListSheet是我使用的工作表的代号名称,而另一个函数将curCol作为$ D $返回,所以我不能将该值硬编码到IsError函数中

1 个答案:

答案 0 :(得分:1)

这是一个简单的方法:

  1. 创建错误
  2. 测试错误
  3. Sub MakeErrorTestError()
        Range("B9").Formula = "=VLOOKUP(0,0,0)"
        MsgBox Range("B9").Text
    End Sub
    

    修改#1:

    这是一种测试特定单元格中的任何错误和错误的方法:

    Sub MakeErrorTestError()
        Dim rError As Range
        Range("B9").Formula = "=VLOOKUP(0,0,0)"
        On Error Resume Next
        Set rError = ActiveSheet.UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
        If rError Is Nothing Then MsgBox "No errors"
        If Intersect(Range("B9"), rError) Is Nothing Then
            MsgBox "No error in B9"
        Else
            MsgBox "error in B9"
        End If
    End Sub