我需要在公式中使用indirect函数,因为它引用了可以删除的工作表2。 由于其波动性,我不想在不需要时触发间接功能。所以我写下这个公式:
=IF(abc=1;"";INDIRECT("Sheet 2!zzz"))
我有我想要的结果(“”或zzz值)。 但它似乎总是不稳定! 我用这个宏测试它(在http://www.decisionmodels.com/calcsecretsi.htm上找到):
Option Base 1
Option Compare Text
'-----------------------
Public jCalcSeq As Long ''' calculation sequence counter
'
Public Function CalcSeqCountRef(theRange As Range) As Variant
'
' COPYRIGHT © DECISION MODELS LIMITED 2000. All rights reserved
'
' increment calculation sequence counter at Full Recalc or when theRange changes
' fixed for false dependency
'
jCalcSeq = jCalcSeq + 1
CalcSeqCountRef = jCalcSeq + (theRange = theRange) + 1
Debug.Print Application.Caller.Formula
End Function
Sub resetcounter()
jCalcSeq = 0
End Sub
我怎么能把这个公式写成不易变形?
谢谢你:)。
答案 0 :(得分:1)
即使使用IF或CHOOSE等,也不能使包含易失性函数的公式不易挥发:如果公式包含易失性函数或引用易失性函数的名称,则该公式被标记为易失性。