首页 文章

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

提问于
浏览
2

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

在从这个数据集中填充工作表中的单个单元格的过程中,我需要能够评估我正在下载的公式是否会生成#Ref!将值放入单元格之前的错误 . 在上面的示例中,如果存在引用的工作表,则通过VBA将该值放在单元格中可以很好地工作 . 如果没有,我有办法找到它,但首先我需要检测它是否会产生错误,以便最终用户不必处理弹出的对话框,询问这个孤儿的路径工作表 .

2 回答

  • 0

    您可以使用 Evaluate 测试您的公式 . 尝试:

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

    这将在将错误放入单元格之前捕获错误,但不是特定于引用错误 .
    这将捕获公式上的所有错误 . 不是100%你正在寻找的答案,但HTH .

  • 2
    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

相关问题