有没有办法loggingExcel公式计算的顺序

当按F9或在VBA中调用Calculate时,Excel中的公式将被执行。 但是,序列是由Excel本身完成的,直到公式依赖关系中的依赖约束。 有没有办法logging下计算过程?

例如,

  • 我把A1放在10格, A2放在20格;
  • A3放置=A1+A2 ,表示30 ;
  • A4放置=A1*A2 ,表示200 ;
  • A5放置=A3-A4 ,它显示-170

我希望有一种方法可以显示计算顺序为:对于单元格A1A2 ,对于单元格A3A4 ,对于单元格A5

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

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

但是请注意,计算顺序在每次计算时都会dynamic变化。 使用CalcTrace将XLA解压缩并解除阻塞(右键单击XLA-> Properties-> Unblock)。 然后打开XLA,就好像它是一个工作簿。 对于每个公式,您想要查看计算顺序(例如A4和A5,请在CalcSeqCountRef(A4)和CalcSeqCountRef(A5)旁边添加一个公式,每次计算CalcSeqCountRef时返回一个计数值,因为CalcSeqCountRef (A4)依赖于A4,每次计算A4时计算。