Excel解算器 - 具有可变单元格范围的约束

时间:2017-06-15 18:59:31

标签: excel vba excel-vba solver

我正在使用Excel中的一个宏来解决Solver中的练习。我的问题是形成约束的变量数量是可变的。 也就是说,我在表格“结果”中有我的目标细胞和我的细胞变化。待改变的细胞数是可变的,从细胞AF22开始到细胞AF& var11。类似地,目标单元格的行也可以是可变的,在列AH和行var2中。 限制是细胞AG22:AG& var11与工作表“输入数据”中的其他单元格相同:F31:F& VAR2。 当我运行宏时,我得到错误:“模型中的错误,检查所有单元格和约束是否有效。” 我把宏放在了以便更好地理解:

var2 = WorksheetFunction.Sum(Val(30), Sheets("Input data").Range("G28").Value)
var11 = WorksheetFunction.Sum(Val(21), Sheets("Input data").Range("G28").Value)
var12 = var11 + Val(4)
'
'SOLVER
Sheets("Results").Select
Range(Cells(22, 32), Cells(var11, 32)).Select
Selection.ClearContents
'Objetivo
SolverReset
SolverOk SetCell:=Sheets("Results").Cells(var12, 34), MaxMinVal:=2, ValueOf:=0, ByChange:=Sheets("Results").Range(Sheets("Results").Cells(22, 32), Sheets("Resultados válvula").Cells(var11, 32)), Engine:=1, EngineDesc:="GRG NonLinear"

'Constraints
Set rang = Sheets("Results").Range(Sheets("Results").Cells(22, 33), Sheets("Results").Cells(var11, 33))
Set const = Sheets("Input data").Range(Sheets("Input data").Cells(31, 6), Sheets("Input data").Cells(var2, 6))
    SolverAdd CellRef:=rang.Address, Relation:=2, FormulaText:=const.Address
SolverSolve

任何人都可以帮助我吗?

谢谢!

0 个答案:

没有答案