我有以下代码,它在一个更大的宏中重复了几次。我发现如果我指定搜索方法(通过包含“Engine:=..”),宏会关闭自动计算(在Formulas>Calculation Options中找到)并将其切换为手动。这基本上将优化固定在一个点上,即使下面的优化是循环的,因为它优化到不同的值。由于这个问题,相互链接的单元格不会更新,这使得优化变得无用。
我可以在不指定搜索方法的情况下运行宏,但理想情况下我希望能够选择它。有任何想法吗?
SolverReset
SolverOK SetCell:="$K$21", MaxMinVal:=1, ValueOf:="0", ByChange:="$D$41:$H$41", Engine:=2
SolverAdd CellRef:="$K$25", Relation:=2, FormulaText:="1"
SolverAdd CellRef:="$D$41:$H$41", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$D$41:$H$41", Relation:=3, FormulaText:="$D$12:$H$12"
SolverAdd CellRef:="$D$41:$H$41", Relation:=1, FormulaText:="$D$13:$H$13"
SolverSolve UserFinish:=True
SolverFinish KeepFinal:=1
Range("K23").Value = Range("K21").Value