【问题标题】:Evaluate() Function Returning Error 2023, however there is no errorEvaluate() 函数返回错误 2023,但没有错误
【发布时间】:2015-01-22 05:42:36
【问题描述】:

我使用Evaluate() function 在放入单元格之前测试错误值。在下面的示例中,这将返回 Error 2023,但是当我将字符串粘贴到单元格中时,它会正确读取且没有错误(将准确返回外部电子表格中引用的值)。示例如下:

Evaluate("='H:\@Projects\@Dev[BudgetTracking_ProjectName_MSTR_FK_2.xlsm]Budget Estimate (2)'!F44")

【问题讨论】:

  • 如果这是Determine if formula will return #Ref! error 的后续问题,那么使用Evaluate 您要测试的公式引用已关闭的工作簿将不起作用。另一种方法可能是使用Application.DisplayAlerts = False,只需将公式写入单元格,然后测试#Ref!。这将抑制到文件打开对话框。 (之后记得Application.DisplayAlerts = True
  • 这是一个很好的方法,克里斯。该功能确实有效,但是我需要为这个东西制定另一个处理层,我认为这个建议将非常有用。谢谢

标签: excel vba function evaluate


【解决方案1】:

错误 2023 是 xlErrRef #REF!。 Evaluate 函数不能直接从已关闭的工作簿中进行评估。打开H:\@Projects\@Dev\BudgetTracking_ProjectName_MSTR_FK_2.xlsm

Evaluate("='H:\@Projects\@Dev\[BudgetTracking_ProjectName_MSTR_FK_2.xlsm]Budget Estimate (2)'!F44")

会起作用。注意目录名称“@Dev”后面的“\”。

当然

Evaluate("='[BudgetTracking_ProjectName_MSTR_FK_2.xlsm]Budget Estimate (2)'!F44")

足够了。

要从已关闭的工作簿中获取值,您必须使用 Excel4Macro 功能。见:http://spreadsheetpage.com/index.php/tip/a_vba_function_to_get_a_value_from_a_closed_file/

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 2019-11-22
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    相关资源
    最近更新 更多