【问题标题】:Is there a way to record down the sequence of Excel formula calculation有没有办法记录Excel公式计算的顺序
【发布时间】:2016-09-20 07:42:30
【问题描述】:

当在 VBA 中按 F9 或调用 Calculate 时,Excel 中的公式将被执行。但是,顺序是由 Excel 自己完成的,直到公式依赖中的依赖约束。有没有办法记录下计算过程?

例如,

  • 我将10 放入单元格A120 放入A2
  • =A1+A2 放入A3,就可以了 显示30
  • =A1*A2放入A4,显示200
  • 输入=A3-A4 A5,显示-170

我希望有一种方法可以表明计算顺序是 - 0 用于单元格 A1A2 - 1 用于单元格 A3A4 - 2 用于单元格A5

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    要确定最后使用的计算序列,您可以从 XLSX/XLSM 文件中提取计算链部分并对其进行解码。 以https://msdn.microsoft.com/en-us/library/office/gg278336.aspx为起点

    对于小规模测试,您可以使用像这样的计算序列跟踪 UDF
    http://www.decisionmodels.com/Downloads/CalcTrace.zip

    但请注意,每次计算时计算顺序都会动态变化。 要使用 CalcTrace 解压缩 XLA 并取消阻止它(右键单击 XLA->Properties->Unblock)。然后像打开工作簿一样打开 XLA。对于您想要查看计算序列的每个公式(例如 A4 和 A5,在 =CalcSeqCountRef(A4) 和 =CalcSeqCountRef(A5) 旁边添加一个公式。这将返回一个计数,每次计算 CalcSeqCountRef 时都会增加 1。因为 CalcSeqCountRef (A4) 依赖于 A4 每次计算 A4 时都会计算。

    【讨论】:

    • google for xml 计算链。每次计算其参数引用的单元格时,CalcSeqCountRef() UDF 都会增加一个计数器:例如,每当计算 A1 时,CalcSeqCountRef(A1) 就会增加并返回一个计数器。
    • 它正在工作!现在我想出了如何使用它!非常感谢,您能解释一下它是如何完成的吗?
    猜你喜欢
    • 2022-11-18
    • 2021-10-17
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多