我是应用程序初学者的Visual Basic,并遇到以下问题。
我必须使用Excel Solver更改一行中的两个变量单元格,以便在同一行中将另一个单元格放到零。单元格通过Excel本身的简单计算连接。还必须定义一些约束。
使用下面的代码,只有最后定义的行将被重写到excel中的单元格中。之前的行已计算但未重写。
Sub solverloop()
Dim i As Long
For i = 96 To 154
SolverReset
SolverOk SetCell:="$AE$" & i, MaxMinVal:=3, ValueOf:=0, ByChange:=Range(Cells(i, "V"), Cells(i, "W")), Engine:=1, EngineDesc:="GRG-Nichtlinear"
SolverAdd CellRef:=Range(Cells(i, "V"), Cells(i, "W")), Relation:=3, FormulaText:="0"
'Solving the Modell, but message box which must be confirmed by the user will not be displayed
SolverSolve UserFinish:=True
'Finishing the model and keep the last result
SolverFinish KeepFinal:=1
Next i
End Sub
答案 0 :(得分:0)
SolverReset应清理解算器内的信息,例如目标单元格。
SolverOK是定义求解器操作的命令。该命令的工作方式类似于遥控器。它可以用鼠标或键盘完成。定义的单元格与您通过鼠标打开求解器窗口时可以看到的相同。
SolverAdd,添加了可由软件更改的单元格(求解器本身),以在SolverOK函数中实现定义的值。
SolverSolve与按下按钮相同,按钮启动解算器解决定义的信息。添加UserFinish:= True,每行不得按下按钮。
SolverFinish应该保持已经实现的解决方案并且"应该"把它写回excel单元格。
THX