Excel VBA求解器。方程式没有解决

时间:2015-06-10 17:22:07

标签: excel vba excel-vba

对于知道自己在做什么的人来说,这可能是一个非常简单的问题,但我不熟悉使用VBA解算器功能,这证明是一种痛苦。

我有这个公式是单元格C1 = 3 * A1 ^ 2-2 * A1 ^ 3并且在B1中有一个设定的数字,假设为0.5。

我想使用Solver来更改当前设置为0的单元格A1,直到C1 = B1

我尝试使用示例代码,但没有快乐,我目前支持下面的代码,但它没有做任何事情

Sub solveTest()

Worksheets("Sheet3").Activate
SolverReset
SolverOptions precision:=0.001
SolverOK setCell:=Range("C1"), maxMinVal:=3, byChange:=Range("A1")
SolverAdd cellRef:=Range("B1"), relation:=2, formulaText:=Range("C1")
SolverSolve userFinish:=True

End Sub

1 个答案:

答案 0 :(得分:0)

如果将maxMinVal设置为3,则表示您希望它收敛到特定值。但是在你的代码中你没有说出那个价值是什么。我看到你用你所添加的约束暗示它,但我怀疑它是从那个猜测它。我建议删除约束并修改SolverOk行,如下所示:

Sub solveTest2()

    Worksheets("Sheet1").Activate
    SolverReset
    SolverOptions precision:=0.001
    SolverOK setCell:=Range("C1"), maxMinVal:=3, valueof:=Range("B1").Value, byChange:=Range("A1")
    SolverSolve userFinish:=True

End Sub

https://support.microsoft.com/en-us/kb/843304