如何确定类似于VBA.IsError的单元格中的错误值

我有一个Excel电子表格。 我试图testing公式是否导致错误。 VBA有VBA.IsError ,我正在寻找在VB.net的等效。

  Dim CurrCell As Excel.Range = ws.Range("B10") CurrCell.Formula = "=DATEVALUE(-1)" 'results in #VALUE! error CurrCell.Select() 'doesn't detect error If Microsoft.VisualBasic.IsError(CurrCell.Value) Then Debug.Print("error") Else Debug.Print("not error") End If 'doesn't detect error; shows as VariantType.Integer Debug.Print(VarType(CurrCell.Value)) If VarType(CurrCell.Value) = VariantType.Error Then Debug.Print("error") Else Debug.Print("not error") End If 

如何检测公式的结果是否是使用VB.net的错误?

这工作:

  If xlApp.WorksheetFunction.IsError(CurrCell) Then Debug.Print("error") Else Debug.Print("not error") End If 

但是Mike Rosenblum给出了一个更好的解决scheme

  Public Shared Function IsError(ByVal rgValue As Object) As Boolean Return TypeOf (rgValue) Is Int32 End Function 

在.NET中处理CVErr值 – 第一部分:问题

在.NET中处理CVErr值 – 第二部分:解决scheme