Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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_Solver - Fatal编程技术网

VBA:解算和忽略约束

VBA:解算和忽略约束,vba,excel,solver,Vba,Excel,Solver,我试图为宏的每次运行设置解算器,但由于某种原因,它似乎忽略了一些约束,而不是所有约束 SolverReset SolverOk SetCell:="$N$15", MaxMinVal:=3, ValueOf:=0, ByChange:=Range("i3", Range("i3").End(xlDown)), _ Engine:=3, EngineDesc:="Evolutionary" SolverAdd CellRef:=Range("k3", Range("k3").End(xlDown)

我试图为宏的每次运行设置解算器,但由于某种原因,它似乎忽略了一些约束,而不是所有约束

SolverReset
SolverOk SetCell:="$N$15", MaxMinVal:=3, ValueOf:=0, ByChange:=Range("i3", Range("i3").End(xlDown)), _
Engine:=3, EngineDesc:="Evolutionary"
SolverAdd CellRef:=Range("k3", Range("k3").End(xlDown)), Relation:=1, FormulaText:="1"
SolverAdd CellRef:="$P$12:$P$13", Relation:=1, FormulaText:="$R$12:$R$13"
SolverAdd CellRef:="$P$12:$P$13", Relation:=3, FormulaText:="$N$12:$N$13"
SolverAdd CellRef:=Range("n3", Range("n3").End(xlDown)), Relation:=2, FormulaText:="1"
SolverAdd CellRef:=Range("i3", Range("i3").End(xlDown)), Relation:=5, FormulaText:="binary"
SolverSolve
它只忽略范围(“n3”、范围(“n3”).End(xlDown))和范围(“k3”、范围(“k3”).End(xlDown))的约束

任何帮助都将不胜感激

谢谢

来自XL帮助:

关系必需整数。约束左右两侧之间的算术关系。如果选择4或5,CellRef必须引用可调整(更改)的单元格,不应指定FormulaText


您的上一个范围的relation=5,所以不能包含FormulaText。

我也有同样的问题,relation=5的范围的FormulaText没有问题,但问题是FormulaText=“1”。在解算器中忽略每个具有FormulaText=“1”的SolverAD。 我的解决方案是在一个单元格中添加“1”(例如E9)并设置FormulaText=“$e$9”。
可能有更好的解决方案,但这对我来说很好…

忽略范围内有多少个单元格?我认为excel中包含的solver版本有一些限制。。。每个被忽略的区域中可能有20个单元格,这不应该是问题所在,因为如果我手动设置它,我可以解决它,最大200个变量仅适用于更改单元格,我相信其中大约有20个。