所以我想在多位数据上运行求解器。我已经找到了很大一部分(除了一些复制粘贴的情况很糟糕......),但我仍然坚持解决方案 - 它声称在一秒钟内解决,当正常的手动求解器需要几分钟时。
Sub Solver()
'
' Solver Macro
' For solving once we have the data
'
SolverReset
SolverAdd CellRef:="$D$1", Relation:=2, FormulaText:="1"
SolverOk SetCell:="$A$1", MaxMinVal:=1, ValueOf:=0, ByChange:="$A$2:$A$41", _
Engine:=3, EngineDesc:="Evolutionary"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
End Sub
A1 =总和(A2:A42) D1是涉及变量和其他条件的sumproduct的if语句。如果为true,则= 1,否则= 0。很明显,我希望所有的条件都是真的,并且它为1,因为求解器会抛出一个"它可以工作"
预期行为:Solver花费了很多时间来找出解决方案 当前行为:Solver设置问题,然后立即进入下一个要设置的问题。
我是否以某种方式搞砸了我的VBA代码?或者更多的是我的数据如何移动?