【发布时间】:2014-07-09 22:21:43
【问题描述】:
我在这里扯头发。
当我在工作表中运行目标搜索时,这很好。当我尝试从 vba 运行完全相同的目标搜索(手动记录或编码)时,我应该是目标搜索的单元格显示为 0,并且变量不会改变。 F9 什么都不做。如果我编辑目标搜索单元格,强制它重新计算,它会再次显示原始输出 - 因为没有任何改变。
有没有其他人遇到过这种情况?
Range("G14").GoalSeek Goal:=0, ChangingCell:=Range("F14")
G14 是一个用户定义的公式,带有 2 个范围参数和几个单个单元格参数。
F14 是范围参数之一内的单元格,并且绝对是计算中的驱动程序。
【问题讨论】:
-
可以发布您的公式吗?
-
您确定单元格 G14 包含受单元格 F14 中的值影响的公式? (只是确认)
-
@hnk G14 肯定包含受 F14 值影响的公式。 F14 用于 E14 中的公式,该公式是 2 列范围 (D3:E14) 的一部分,该范围是 G14 的参数。手动更改 F14 会导致 G14 发生变化,除此之外,使用工作表中的目标搜索也可以正常工作。
-
尝试在代码中的某处添加
DoEvents。它可能有助于清除可能导致问题的未决事件。 -
@Barett G14
=VanillaIRS($J$2:$K$27,$M$2:$N$27,A14,B14,$D$3:E14,$D$3:E14)E14=DiscountFactor(basisyears($A$1,D14),F14)F14 是百分比格式的数字。我还应该提到,VanillaIRS 函数在计算期间确实调用了引用加载项中的函数。这不是问题,但我想我应该提一下。