Automate Solver with varying constraints range
我想创建 VBA 以使用以下参数运行 Solver:
设定目标:G6
最小化
通过改变变量单元格:J6:J----
受约束:L6:L-- = N6:N--(例如:L6=N6 , L7=N7 , ...)
问题是变量和约束范围在我输入----和--的地方有所不同。我知道变量单元格范围一直到单元格 N1 上的一个数字,而约束单元格范围一直到单元格 N3 上的一个数字。
我不知道如何创建 VBA,但我试过了(它不起作用):
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub SolverMacro() Dim var Dim var2 var = Range("Sheet2!$N$1").Value var2 = Range("Sheet2!$N$3").Value SolverReset SolverAdd CellRef:=Range("L6","L" & var2), Relation:=2, FormulaText:=Range("N1","N" & var2) SolverOptions Assumenonneg:=True SolverOk SetCell:="$G$6", _ MaxMinVal:=2, _ ByChange:=Range("J6","J" & var) SolverSolve userFinish:=True End Sub |
我怎样才能让它工作?
谢谢大家!我找到了答案,它现在正在工作。有效的代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Sub SolverMacroX() SolverReset Dim x As Integer Dim Aux As Long Aux = Range("$L$3") For x = 6 To Aux SolverAdd CellRef:="L" & x, Relation:=2, FormulaText:=Range("N" & x) Next SolverOptions AssumeNonNeg:=True SolverOk SetCell:="$G$6", _ MaxMinVal:=2, _ ByChange:=Range("J6","J" & Range("$J$3")), _ SolverSolve userFinish:=True End Sub |