VBA:运行时错误1004使用求解器

我是VBA的新手,在macros中使用Solver有一些麻烦。 我将一个macros分配给Excel中的一个命令button,并且他们完美地计算了一切,但最后也出现了一个丑陋的错误(“运行时错误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 

我在我的求解器macros中得到了同样的错误。

我尝试了几个Excel论坛中提到的一些事情。 正如评论所暗示的那样,我添加了SolverFinish ,并将所有的SetCellsSetCellsRangetypes中。 我也保存了文件并退出了Excel。

当我回来时,这个技巧和popup式错误消失了。

我在VBA中运行一些SolverOk后,通过GUI使用Solver得到了这个运行时错误。 我在MSDN上遇到过一个post, “Excel 2010和求解器问题” ,并且build议在运行SolverReset之前添加一个SolverOk 。 我在即时窗口中运行了SolverReset ,并且摆脱了运行时错误。

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