如何确定类似于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