解决者/目标寻求无需更换工作表

时间:2017-12-01 19:00:17

标签: excel vba solver

我有一张带有一堆小公式的表单,它们在最后输出总数之前会相互弹跳。

使用目标搜索或解算器我可以选择输出单元格(C50),输入单元格(C4),然后将答案设置为0,它将插入C4中的解决方案(当前设置为2.14)。这非常适合逆向工程所有公式,因为它需要一些时间,并且它们会相当频繁地更改。

所有这一切都是正确和精细的,除了我不想在完成后更改C4,而是在另一个单元格中输出答案(C54)。理想情况下,我试图在C54中创建一个可以显示解决方案的函数,但到目前为止,我只能将其评估为“False”,或者根据我尝试的内容得到值错误。

相反,我结束了这个:

Sub test()
    Dim cOriginal As Currency

    cOriginal = Cells(4, 3).Value
    SolverOk SetCell:="C50", MaxMinVal:=3, ValueOf:=0, ByChange:="C4", Engine:= _
        1, EngineDesc:="GRG Nonlinear"
    SolverSolve (True)
    Cells(54, 3) = Cells(4, 3).Value
    Cells(4, 3) = cOriginal
End Sub

现在这将起作用,我可以根据需要用变量充实它,但它似乎非常优雅,我想知道是否有更顺畅的方法来做这个而不是字面上只是加载原始值然后交换东西。

哦,我应该提一下,我不能让它改变C4然后反映C54的变化,因为重点是将单元格C4留在某处我们可以插入测试值以查看事情如何变化,而通过瞥一眼C54来了解“收支平衡”的价值。

0 个答案:

没有答案