2016-08-11 3 views
0

다른 확률에 대해 다양한 경우를 실행하는 다음 매크로가 있습니다. 기본적으로 다양한 사례 시나리오에 대해 216 개의 사례 (각 4 회)를 실행하고, 3 개의 다른 셀에서 값을 증가시키고 그 이후의 최상의 수익을 계산하도록 해를 구합니다. 그것은 1 반복에 대해서는 잘 작동하지만, 864 반복이 있습니다. 이것은 문제가 발생한 곳입니다.루프 및 솔버 대화 상자 (Excel VBA)

매 반복이 끝날 때마다 대화 상자가 나타나서 솔버가 가장 일치하는 것을 찾았고 무엇을하고 싶은지 말했습니다. 내 질문은 팝업을 해제하는 방법이 있다면 무엇입니까?

코드 : 시스템 정보

Sub Macro9() 
' 
' Macro9 Macro 
' 

Application.ScreenUpdating = False 
Application.DisplayAlerts = False 


Dim a As Integer 
Dim b As Integer 
Dim c As Integer 
Dim d As Integer 

a = 0 
b = 0 
c = 0 
d = 1 


While a <= 30 

    Range("B21") = a 

    While b <= 30 

     Range("B22") = b 

     While c <= 30 

      Range("B23") = c 

      SolverOk SetCell:="$I$24", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$14:$B$20", _ 
       Engine:=3, EngineDesc:="Evolutionary" 
      SolverSolve 
      SolverOk SetCell:="$I$24", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$14:$B$20", _ 
       Engine:=3, EngineDesc:="Evolutionary" 
      SolverSolve 
      SolverOk SetCell:="$I$24", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$14:$B$20", _ 
       Engine:=3, EngineDesc:="Evolutionary" 
      SolverSolve 
      SolverOk SetCell:="$I$24", MaxMinVal:=1, ValueOf:=0, ByChange:="$B$14:$B$20", _ 
       Engine:=3, EngineDesc:="Evolutionary" 
      SolverSolve 

      Cells(27, d) = d 

      e = 28 

      While e <= 37 

       Cells(e, d) = Cells(e - 14, 2) 
       e = e + 1 

      Wend 

      Cells(38, d) = Range("I24") 

      c = c + 5 
      d = d + 1 

     Wend 

     b = b + 5 
     c = 0 

    Wend 

    a = a + 5 
    b = 0 
    c = 0 

    Wend 

Application.ScreenUpdating = True 
Application.DisplayAlerts = True 

End Sub 

: 엑셀 2010

답변

0

그래서, 주변의 모양이 있고, 가장 좋은 방법은 EYAN 노 로냐의 대답에서 온다 here

대답은 변화를 포함하는 것입니다 SolverSolve ~ SolverSolve (True). 이렇게하면 솔버가 대화 상자를 표시하지 않고 루프를 계속 진행할 수 있습니다.