Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 迭代解算器不求解_Vba_Excel - Fatal编程技术网

Vba 迭代解算器不求解

Vba 迭代解算器不求解,vba,excel,Vba,Excel,所以我想在多个数据位上运行一个解算器。我已经解决了大部分问题(除了一些复制粘贴效果不好的问题…),但我仍停留在解算器方面——它声称在一秒钟内解算,而普通的手动解算器需要几分钟 Sub Solver() ' ' Solver Macro ' For solving once we have the data ' SolverReset SolverAdd CellRef:="$D$1", Relation:=2, FormulaText:="1"

所以我想在多个数据位上运行一个解算器。我已经解决了大部分问题(除了一些复制粘贴效果不好的问题…),但我仍停留在解算器方面——它声称在一秒钟内解算,而普通的手动解算器需要几分钟

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是一个if语句,涉及变量和其他条件的乘积。如果为真,则为1,否则为0。显然,我希望所有的条件都是真的,如果它是1,那么解算器就会抛出一个“it works”

预期行为:解算器在找出解决方案时花了很多时间 当前行为:解算器设置问题,然后立即进入下一个要设置的问题


我是不是把VBA代码搞砸了?还是与我的数据移动方式有关?

是否提供工作簿供分析?我推荐Box.com fileshare site.Solver有一个Iterations属性,它限制了它在返回之前可以迭代的次数。尝试将其设置为比默认值100:Iterations:=1000高得多的值。这与解算器尝试的次数无关-我正在通过解算器运行多个数据集。但它不希望保留约束,也不希望在求解时遵循约束。至于提供工作手册,我无法提供。我已经将不起作用的代码识别为这段特定的代码