VBA:使用Solver的运行时错误1004

时间:2014-02-23 13:42:22

标签: excel vba

我是VBA的新手,在宏中使用Solver时遇到了一些麻烦。我正在为Excel中的命令按钮分配一个宏,它们完美地计算所有内容,但最后也出现了一个丑陋的错误(“运行时错误1004,对象_应用程序的方法计算失败”)。

Sub serieus1()
'
' serieus1 Macro
'  

'
    SolverReset
    SolverAdd CellRef:="$R$15", Relation:=2, FormulaText:="1"
    SolverAdd CellRef:="$L$18", Relation:=2, FormulaText:="$B$3"
    SolverOk SetCell:="$L$19", MaxMinVal:=2, ValueOf:=0, ByChange:="$L$15:$Q$15", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
    SolverSolve

End Sub

2 个答案:

答案 0 :(得分:2)

我的Solver宏中出现了同样的错误。

我尝试了几个Excel论坛中提到的一些内容。正如评论所示,我确实添加了SolverFinish,并且还将我SetCells的所有Range包裹起来。我还保存了文件并退出了Excel。

这就是诀窍,当我回来时弹出错误消失了。

答案 1 :(得分:1)

我在VBA中运行了一些SolverOk后,通过GUI使用Solver得到了这个运行时错误。我在MSDN上发现了一篇帖子"Excel 2010 and Solver Issue,",并建议您在运行SolverReset之前添加SolverOk。我在立即窗口中运行SolverReset,这消除了运行时错误。

以前我没有像Ram Narasimhan推荐的那样SolverFinish,如果我有,那可能首先阻止了错误,但这只是推测。