首页 > 解决方案 > Excel VBA Solver - 为什么我没有得到有效的解决方案?

问题描述

我正在尝试使用 Excel Solver 解决优化问题。当我手动执行时,它工作正常。但是当我在 VBA 中尝试它时,我收到以下错误消息:modell 中的错误。请验证所有单元格和约束是否有效。

Sub solv()
Dim rng As Range
Set rng = ActiveWorkbook.Worksheets("Sheet1").Range("B1:B3")

SolverReset
SolverOk SetCell:=C5, MaxMinVal:=1, ValueOf:=0, ByChange:=rng, Engine:=2, EngineDesc:="Simplex LP"
SolverAdd CellRef:=rng, Relation:=5, FormulaText:="binary"
SolverSolve

End Sub

运行代码时,计算也会从自动变为手动。

我尝试了对 SetCell、ByChange 和 CellRef 的各种不同的更改,但没有任何效果。有谁可以帮助解决这个问题?

电子表格

标签: excelvbaexcel-solver

解决方案


如果我理解正确,这似乎有效。宏记录器在这里实际上很有帮助:

Sub solv()
Dim rng As Range
Set rng = ActiveWorkbook.Worksheets("Sheet1").Range("B1:B3")

SolverReset
SolverOk SetCell:="C5", MaxMinVal:=1, ByChange:=rng.Address, Engine:=2
SolverAdd CellRef:=rng.Address, Relation:=5, FormulaText:="binary"
SolverSolve

End Sub

推荐阅读