VBA:使用Solver时出现运行时错误1004

4

我是VBA的新手,在使用宏中遇到了一些求解器的问题。我在Excel中将宏分配给一个命令按钮,它们完美地计算了所有内容,但最后出现了一个难看的错误(“运行时错误1004,对象_application的计算方法失败”)。

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

1
尝试将 SetCell:="$L$19" 更改为 SetCell:=Range("$L$19")。此外,在 SolverSolve 后添加 SolverFinish - Automate This
2个回答

2

我在我的求解器宏中遇到了相同的错误。

我尝试了一些在几个Excel论坛中提到的方法。正如评论所建议的,我添加了 SolverFinish,并将所有的 SetCells 包装成 Range 类型。我还保存了文件并退出了Excel。

这样就行了,当我重新进入Excel时,弹出的错误消失了。


2
我使用GUI运行Solver时遇到了运行时错误,之前我已经在VBA中运行了一些“SolverOk”。我在MSDN上看到了一篇文章"Excel 2010 and Solver Issue,",建议在运行“SolverOk”之前添加一个“SolverReset”。我在立即窗口中运行了“SolverReset”,这样就消除了运行时错误。
以前我没有像Ram Narasimhan建议的那样使用“SolverFinish”,如果我使用了,“SolverFinish”可能在第一次就防止了这个错误,但这只是猜测。

1
SolverReset解决了我的问题,而SolverFinish没有帮助/足够。 - FlorianH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接