2017-10-10 25 views
0

'이상적으로 출력 범위의 마지막 열 (E6)까지 루프를 돌리고 5, 10, 이동 평균 기간에 대해 15, 20, 25 ~ 50 간격 ...마지막 열까지 5 루핑 간격으로 일련의 이동 평균을 실행하십시오.

본질적으로 여기서 코드를 정리하고 싶습니다. 나는 전문 코더가 아니다. 몇 가지 조언을 부탁드립니다. 내가 그것을 평균 즉 50

시트 이름을 이동 마지막에 맞은 입력 할 위치

CE6은 "데이터"가격 데이터 입니다

Sub Mov_Avgs() 

'last row 
Dim Lastrow As Long 
Lastrow = Range("C" & Rows.Count).End(xlUp).Row 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("E6"), 5, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("F6"), 10, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("G6"), 15, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("H6"), 20, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("I6"), 25, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("J6"), 30, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("K6"), 35, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("L6"), 40, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("M6"), 45, False, False, False 

Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
     ActiveSheet.Range("N6"), 50, False, False, False 


End Sub 

답변

0

루프를 사용해보십시오 :

Sub Mov_Avgs() 

Dim Lastrow As Long 
Dim ColNum As Long 
Dim Step As Long 

Lastrow = Range("C" & Rows.Count).End(xlUp).Row 
Step = 5 

For ColNum = 5 To 14 
    Application.Run "ATPVBAEN.XLAM!Moveavg", ActiveSheet.Range("$C$6:$C" & Lastrow), _ 
    ActiveSheet.Cells(6, ColNum), Step, False, False, False 
    Step = Step + 5 
Next 

희망이 있습니다.