【问题标题】:Is it possible to use Excel functions to evaluate the result of a function?是否可以使用 Excel 函数来评估函数的结果?
【发布时间】:2018-02-20 19:12:02
【问题描述】:

我在I2中有一个公式:

= "=" & "'" & $H2 & $I2 & E2 & "'!" & "$C$2"

它结合了目录、文件名、工作表名称和单元格位置。

现在我想在J2 中评估该公式的结果。是否可以在没有 VBA 或仅使用一点 VBA 的情况下这样做?我需要能够填写I2I1000,我个人更喜欢非VBA 方法。

例如,假设I2结果为:

='R:\20180220\[Test.xlsb]'!$C$2

有没有办法在J2 中实际显示该单元格的值?请注意,workbook Test.xlsb 已关闭,不会打开(因为我有数千个工作簿,无法全部打开)。

我在 VBA 中尝试了 EVALUATE(Range.Formula)ExecuteExcel4Macro(),并尝试用 UDF 包装它们,但都失败了。

【问题讨论】:

  • 尝试 INDIRECT() 但这需要打开工作簿。
  • 嗨@ScottCraner 感谢您的回复!是的,我也试过了,但是文件必须关闭,可惜......不过我愿意使用 UDF。
  • 如果您尝试过 UDF,那么发布您尝试过的内容并描述运行它时发生的情况可能会很有用。
  • @TimWilliams 好主意,我会在会后更新帖子,谢谢!
  • [J2].Formula = [I2].Value,或将"$C$2" 更改为"$C2"[J2:J1000].Formula = [i2].Value。使用 Power Query 或 Microsoft Query 查询已关闭的工作簿可能会更好

标签: excel excel-formula excel-indirect


【解决方案1】:

这里有一个可能对你有用的组合。

  1. 按照您当前的帖子创建公式。请注意,您帖子中的结果缺少对选项卡/工作表的引用 --- 您可能需要更新公式以包含工作表。我在测试中使用的公式是 = "=" & "'" & $PATH & $FILE & $TAB & "'!" & "$C$2"(与您的相同,但为 $TAB 添加了一个字段)。

  2. 复制/粘贴特殊值的结果。这将 = "=" & "'" & $PATH & $FILE & $TAB & "'!" & "$C$2" 替换为 ='C:\PATH\WORKBOOK\TAB!$C$2 以提供正确的公式。令人烦恼的是,它们不会自动计算。

  3. 要强制更新计算,F9 似乎不起作用,因此选择结果并执行 mock 查找/替换,例如将 $C$2 替换为 $ 2加元。这不会改变公式,但会重新计算。您也可以只保存、关闭并重新打开工作簿。

希望这会有所帮助。

【讨论】:

  • 谢谢!我决定改用VBA,就是这样。顺便说一句,我不久前也尝试刷新并保存/关闭,但没有成功。
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 2013-11-03
  • 1970-01-01
相关资源
最近更新 更多