有没有办法loggingExcel公式计算的顺序
当按F9
或在VBA中调用Calculate
时,Excel中的公式将被执行。 但是,序列是由Excel本身完成的,直到公式依赖关系中的依赖约束。 有没有办法logging下计算过程?
例如,
- 我把
A1
放在10
格,A2
放在20
格; - 在
A3
放置=A1+A2
,表示30
; - 在
A4
放置=A1*A2
,表示200
; - 在
A5
放置=A3-A4
,它显示-170
。
我希望有一种方法可以显示计算顺序为:对于单元格A1
和A2
,对于单元格A3
和A4
,对于单元格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时计算。