2014-07-15 66 views
0
Sub SolverMacro() 
' 
' SolverMacro Macro 
' 

' 
    Range("F29").Select 
    SolverOk SetCell:="$F$29", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$18:$D$26", _ 
     Engine:=1, EngineDesc:="GRG Nonlinear" 
    SolverOk SetCell:="$F$29", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$18:$D$26", _ 
     Engine:=1, EngineDesc:="GRG Nonlinear" 
    SolverSolve 
    ActiveWindow.SmallScroll Down:=-12 

    If (Range("f29").Value > Range("b2").Value) Then 
     MsgBox "Not Feasible" 
    Else 
     MsgBox "Feasible" 
    End If 


End Sub 

你好,此刻我點擊一個按鈕,按鈕運行上面的宏。它執行解算器功能。 但是我想運行100個條件給我一個下拉列表。我怎樣才能把上面的代碼放在for循環中,並且一次又一次地運行求解器100次。下拉列表位於單元格A2中。謝謝。宏下拉列表

回答

0

這是你想要的嗎?

For i = 1 to 100 

    'Change "MyDropDownList" to your DDL's name 
    MyDropDownList.ClearSelection() 
    MyDropDownList.Items(i).Selected = True 

    Range("F29").Select 
    SolverOk SetCell:="$F$29", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$18:$D$26", _ 
     Engine:=1, EngineDesc:="GRG Nonlinear" 
    SolverOk SetCell:="$F$29", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$18:$D$26", _ 
     Engine:=1, EngineDesc:="GRG Nonlinear" 
    SolverSolve 

    'Repeating the scroll in a loop is not a good idea IMO, you should just remove it 
    'ActiveWindow.SmallScroll Down:=-12 

    If (Range("f29").Value > Range("b2").Value) Then 
     MsgBox "Not Feasible" 
    Else 
     MsgBox "Feasible" 
    End If 
Next