楼主:
Tampa (光芒)
2016-11-19 17:10:17※ [本文转录自 Visual_Basic 看板 #1OC1QXPU ]
作者: Tampa (光芒) 看板: Visual_Basic
标题: [VBA ] 规划求解
时间: Sat Nov 19 17:08:47 2016
各位大大好
我用的是excel 2010
有试著录制一段规划求解的宏
程式码如下
快速键: Ctrl+s
'
SolverOk SetCell:="$AB$2", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$2",
Engine:= _
3, EngineDesc:="Evolutionary"
SolverDelete CellRef:="$G$3432", Relation:=1, FormulaText:="48"
SolverAdd CellRef:="$G$2", Relation:=1, FormulaText:="$E$2"
SolverOk SetCell:="$AB$2", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$2",
Engine:= _
3, EngineDesc:="Evolutionary"
SolverDelete CellRef:="$G$3432", Relation:=4
SolverAdd CellRef:="$G$2", Relation:=4, FormulaText:="整数"
SolverOk SetCell:="$AB$2", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$2",
Engine:= _
3, EngineDesc:="Evolutionary"
SolverDelete CellRef:="$G$3432", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$E$2", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$AB$2", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$2",
Engine:= _
3, EngineDesc:="Evolutionary"
SolverOk SetCell:="$AB$2", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$2",
Engine:= _
3, EngineDesc:="Evolutionary"
SolverSolve
End Sub
简单来说
我输入变量在G字段的所有储存格,范围从G2到G17860,限制式如下
G2<=E2
G2>=0
G2=整数
求AB2的最小值
.
.
.
G3<=E3
G3>=0
G3=整数
求AB3的最小值
.
.一直到
.
G17860<=E17860
G17860>=0
G17860=整数
求AB17860的最小值
宏结束
问题一:规划求解似乎不能直接用复制来做
所以需要用宏,但小弟我 对程式码不很了解
所以附上程式码,希望各位大大可以指点一下,需要修改哪几个地方
以方便我顺利求解
ps计算方式为演化
感谢
作者: soyoso (我是耀宗) 2016-11-19 17:56:00
加上循环,setcell、bychange等,所带入的储存格位置字串改以变量以&连接,如因出现规划求解结果的视窗中断,再于solversolve后加true或是搜寻版上规划求解,
#1LjuNjw6、
#1IeB04ZV等原文有写到循环的部分出现没定义这个sub或function的话,看
#1NpNv6SIrange(cells(j,7))方面将range()拿掉试试