从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. 创建错误
  2. 测试错误

.

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

最新更新