2017-10-24 2 views
0

변수 인 시작 및 끝 숫자로 동적 for 루프를 만들려고했습니다. 그러나 코드는 변경된 시작 및 끝 번호로 for 루프에 들어갈 수 없습니다. 문제를 어떻게 해결할 수 있습니까?VBA에서 동적 for 루프 만들기

여기

Sub row_column() 

Dim ws As Worksheet 

Set ws = ThisWorkbook.Worksheets("origin_boundary") 

Row = 1 

Dim Start As Integer 
Start = 2 
Dim Last As Integer 
Last = 41 

For x = Start To (Last + 1) 

If ws.Cells(x, 1) <= Row * 40 Then 
ws.Cells(x, 6) = Row 

Else 
If ws.Cells(x, 1) > (Row * 40) Then 

Row = Row + 1 
ws.Cells(x, 6) = Row 
Start = (Row - 1) * 40 + 2 
Last = Start + 39 

End If 

End If 

Next x 






End Sub 
+0

예상되는 결과는 무엇입니까? 코드는 For 루프를 통과합니다. – QHarr

답변

0

For x = Start To (Last + 1)(Last + 1)Start 값에서 x 루프 내 코드입니다.

  • 처음 루프 실행, Start = 2 때문에 x = 2. Start
    값을 변경 아무 소용이 없기 때문에

  • 두 번째 시간 루프가 실행, x = 3 3 2. Start
    후에 오기 때문에 여기에 역할이 없습니다. 대신 x의 값을 x = (Row - 1) * 40 + 2과 같이 변경할 수 있습니다. 당신이 원하는 경우

  • Last = Start + 39

    는 동적 일 수 있지만, x은 (동적으로 변경)의 값 Last 값에 도달 할 때까지 문제가되지 않습니다. 여기 Start 대신 x을 사용할 수 있습니다.

관련 문제