2016-07-19 2 views
-1

솔버 기능을 사용하여 솔버를 50 회 실행할 수있는 하위가 있습니다. 그러나 각 실행 후 해 찾기 결과를 복사하여 붙여 넣으려고합니다. 예를 들어 최적화 탭에서 셀 범위 E1 : O13이 해석 결과를 표시하지만 각 실행은 동일한 섹션에서 결과를 덮어 씁니다. 셀 A1에서 시작하여 다른 워크 시트 호출 "SolverResults"에 셀 범위 E1 : E13을 복사하려면 범위 A1 : K13의 솔버를 처음 실행 한 다음 셀의 두 번째 실행을 복사하여 셀 A16에 붙여 넣으십시오. K28, 등등. 복사 및 붙여 넣기 부분에서는 루프를 사용하는 방법을 모르므로 현재 SolverResults 탭에 Solver가 50 번 실행되고 F1이 끝나는 A1 : K13에 대한 데이터 섹션 하나만 표시됩니다 = 221.각 실행 후 솔버 결과 복사 및 붙여 넣기

루프를 사용하여 결과 섹션을 섹션별로 복사하고 붙여 넣는 방법을 아는 사람이 있습니까? 나는 VBA에 아주 익숙하다. 그래서 어떤 제안도 감사 할 만하다.

{Sub RRS() 
For i = 0 To 50 Step 1 
SolverReset 
Range("F1") = 271 - i 
    SolverOk SetCell:="$L$13", MaxMinVal:=3, ValueOf:=0.01, ByChange:="$F$4:$F$12" _ 
     , Engine:=1, EngineDesc:="GRG Nonlinear" 
    SolverOptions MaxTime:=0, Iterations:=0, Precision:=0.001, Convergence:=0.0001 _ 
     , StepThru:=False, Scaling:=False, AssumeNonNeg:=True, Derivatives:=2 
    SolverAdd CellRef:="$F$4:$F$12", Relation:=1, FormulaText:="$I$4:$I$12" 
    SolverAdd CellRef:="$F$4:$F$12", Relation:=3, FormulaText:="$H$4:$H$12" 
    SolverAdd CellRef:="$F$13", Relation:=2, FormulaText:="1" 
    SolverSolve (True) 
    SolverFinish KeepFinal:=1 
    Worksheets("Optimization").Range("E1:O13").Copy Destination:=Worksheets("SolverResults").Range("A1") 
Next i 
End Sub 
} 

답변

0

이 줄을 바꾸기 :이

If i = 0 Then 

    Worksheets("SolverResults").Range("A1").Resize(13,11).Value = _ 
     Worksheets("Optimization").Range("E1:O13").Value 

Else 

    Worksheets("SolverResults").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(13,11).Value = _ 
     Worksheets("Optimization").Range("E1:O13").Value 

End If 
+0

Worksheets("Optimization").Range("E1:O13").Copy Destination:=Worksheets("SolverResults").Range("A1") 

는 너무 스콧 감사합니다! 이제 코드가 섹션별로 결과 섹션을 복사하여 붙여 넣습니다. 하나의 질문이 있습니다. 코드가 최적화 시트에서 SolverResults 시트까지 E1 : E13 범위의 수식을 복사하여 붙여 넣는 것임을 깨달았습니다. E1 : E13에서 값과 형식을 각각 복사 한 후 SolveResults로 복사하면됩니다. 해 찾기? – jcmachine

+0

@jcmachine - 편집을 시도해보십시오. 크기 조정 인수를 조정해야 조정될 수 있습니다. –

+0

감사합니다. Scott! 나는 지금 그것을 시험해보고있다 :-) 당신의 도움은 높게 평가된다 :-) – jcmachine