我想创建VBA以使用以下参数运行Solver:
设定目标:G6
最小化
通过更改变量单元格:J6:J ----
受制约:L6:L-- = N6:N--(例如:L6 = N6,L7 = N7,......)
问题在于变量和约束范围在我输入----和 - 的位置不同。我知道变量单元格范围一直持续到单元格N1上的数字,并且约束单元格范围一直持续到单元格N3上的数字。
我不知道如何创建VBA,但我尝试过(它不起作用):
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
我怎样才能使这个工作?
答案 0 :(得分:0)
谢谢大家!我找到了答案,现在正在运作。有效的代码是:
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