【问题标题】:VBA: Runtime error 1004 using SolverVBA:使用求解器的运行时错误 1004
【发布时间】:2014-02-23 13:42:21
【问题描述】:

我是 VBA 新手,在宏中使用 Solver 时遇到了一些问题。我正在为 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

【问题讨论】:

  • 尝试将SetCell:="$L$19" 更改为SetCell:=Range("$L$19")。另外,尝试在SolverSolve 之后添加SolverFinish

标签: excel vba


【解决方案1】:

我在 Solver 宏中遇到了同样的错误。

我尝试了几个 Excel 论坛中提到的一些东西。正如评论所暗示的,我确实添加了SolverFinish,并将我所有的SetCells 包装到Range 类型。我还保存了文件并退出了 Excel。

成功了,当我重新进入时,弹出错误消失了。

【讨论】:

    【解决方案2】:

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

    以前我没有像 Ram Narasimhan 推荐的那样拥有 SolverFinish,如果我有,那可能一开始就阻止了错误,但这只是猜测。

    【讨论】:

    • SolverReset 解决了我的问题,而 SolverFinish 没有帮助/足够。
    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多