确定公式是否会返回#Ref! 错误

我正在写一个Excel中的应用程序,从多个数据库中提取数据,并在Excel 2010工作簿的工作表中显示这些数据。 我从数据库中回忆的一些数据是Excel 2010公式的forms(例如='Budget Estimate'!E46)。

在从数据集中填充工作表中的单个单元格的过程中,我需要能够评估我正在下载的公式是否会生成#Ref! 将值放入单元格之前发生错误。 在上面的例子中,通过VBA把这个值放在单元格中,它提供的工作表存在很多。 如果没有,我有办法find它,但首先我需要检测是否会产生一个错误,所以最终用户不必处理popup的对话框要求这个孤儿的path工作表。

 Sub Tester() Dim v v = Application.Evaluate("=Sheet999!A1") If IsError(v) Then Select Case v Case CVErr(xlErrRef): Debug.Print "#ref!" Case CVErr(xlErrDiv0): Debug.Print "#div by zero!" 'etc End Select End If End Sub 

请参阅: http : //www.cpearson.com/excel/ReturningErrors.aspx

你可以用Evaluatetesting你的公式。 尝试:

 If IsError(Evaluate("='Budget Estimate'!E46")) Then 'other cool stuff here End If 

这将捕获错误之前,你把它放在一个单元格,但不是特定于参考错误。
这将捕获公式上的所有错误。 不是真正的100%你正在寻找的答案,但HTH。