Sub Olympic()
Dim i As Long
Dim lngLastRow As Long
Dim lngTemp As Long
Dim rng As Range
With ActiveSheet
'// 말씀 드리는 순간 드디어 F5키를 눌러 경기시작을 선언했습니다.
'// Activesheet 스타디움의 A트랙에 1000개의 숫자를 늘어 놓고 있습니다.
For i = 1 To 10000
.Cells(i, 1).Value = i
Next
'// Start프로시져가 호출되면서
'// timeGetTime씨가 기록을 시작하였습니다
Start
'// 거의 동시에 첫번째 선수 출발했습니다. For루프를 힘차게 왕복하고
있습니다.
For i = 1 To 10000
lngTemp = Range("A" & i).Value
Next
'// 벌써 경기를 끝나고 돌아온 Range 선수!
'// 직접 실행 창을 돌아보면서 기록을 확인하고 있습니다.
Debug.Print "Test 1: " & Finish
'// timeGetTime씨가 다시 기록을 시작하였습니다.
Start '
// 2번째 Cells선수, Range 선수에 이어 출발했습니다.
For i = 1 To 10000
lngTemp = .Cells(i, 1).Value
Next
Debug.Print "Test 2: " & Finish
Start
'// 3번째 선수, 2번째 선수에 이어 출발하고 있습니다.
'// 그런데 이 선수, 시작하자 마자 출발점을 찾고 있습니다
'// A1셀을 찾아서 rng변수에 담고 있습니다.
'// Offset 선수, 출발점 찾느라 시간을 많이 버리는 것 같은데요,
Set rng = .Range("A1")
'// Offset선수 드디어 출발을 하고 있습니다.
'// 이 선수 특이하게 For루프를 0번부터 돌고 있습니다
'// Offset선수의 특성상 0 부터 해야 출발점을 밟고
'// 출발하는 셈입니다. 대신 10000에서 하나 빠진 지점까지만
'// 돌면 되니까 결국 For 루프를 만 번 도는 셈입니다.
For i = 0 To 10000 - 1
lngTemp = rng.Offset(i, 0).Value
Next
'// 마지막 주자인 Offset 선수 경기를 끝내고
'// [직접 실행]창을 통해 자신의 기록을 확인하고 있습니다.
Debug.Print "Test 3: " & Finish
End With
End Sub
|