2013-11-28 108 views
0

我試圖通過使用求解器來記錄一個宏。我試圖最大化細胞M24,改變細胞D8,E8,D13和E13。 D8,E8,D13和E13均大於0,並且F8 = D8 + E8 = 1,F13 = D13 + E13 = 1。我的代碼不起作用。基本上,它不會改變單元格D8,E8,D13和E13中的任何值?有人能指出我做錯了什麼嗎?通過使用VBA最大化Excel求解器不起作用

Sub SolverMacro1() 
' 
' SolverMacro1 Macro 
' 

     Worksheets("Optimise").Activate 

     SolverAdd CellRef:="$D$8", Relation:=3, FormulaText:="0" 
     SolverAdd CellRef:="$E$8", Relation:=3, FormulaText:="0" 
     SolverAdd CellRef:="$F$8", Relation:=2, FormulaText:="1" 
     SolverAdd CellRef:="$D$13", Relation:=3, FormulaText:="0" 
     SolverAdd CellRef:="$E$13", Relation:=3, FormulaText:="0" 
     SolverAdd CellRef:="$F$13", Relation:=2, FormulaText:="1" 


     SolverOk SetCell:="$M$24", MaxMinVal:=1, ByChange:="$D$8:$E$8 & $D$13:$E$13" 

     SolverSolve 

End Sub 

非常感謝提前!

回答

0

嘗試將您傳遞給SolverOk的參數ByChange的值更改爲"$D$8:$E$8,$D$13:$E$13"。激活工作表後,但在調用其他求解器過程之前,您可能還想調用SolverReset

+0

嗨布萊恩,我試過你的建議......數值仍然沒有改變... – user2707605

+0

當你運行宏時會發生什麼? 「解算器結果」對話框是否出現?運行宏之後,如果手動打開Solver(使用菜單),「Solver Parameters」對話框會顯示您期望的內容嗎? –

+0

嗨,大腦,我運行宏後,對話框顯示詢問是否要保存求解器值或保持原始,但細胞沒有變化......這很奇怪。另一個奇怪的是,我運行宏後,公式爲E8 = 1-D8和E13 = 1-D13,所有公式消失,只剩下原始值。是的,運行宏後,當我手動打開求解器時,參數就是我爲上面的代碼設置的參數。 – user2707605