해결 M365윈도우10
속도측정 2개 동일해야 하는데 달라요
Public Sub MeasureMacroSpeed1()
Dim startTime As Single
Dim endTime As Single
startTime = Timer ' 시작 시간 측정
Range("A2", "J2").Value = Range("A1", "J1").Value
endTime = Timer ' 종료 시간 측정
MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "0.00000") & " 초"
End Sub
Public Sub MeasureMacroSpeed2()
Dim startTime As Single
Dim endTime As Single
startTime = Timer ' 시작 시간 측정
Range("A11", "J11").Value = Range("A10", "J10").Value
endTime = Timer ' 종료 시간 측정
MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "0.00000") & " 초"
End Sub
윗줄 A~J 숫자를 아랫줄에 그대로 받아 복사입력하는 매크로. 그걸 속도측정함.
위 속도측정 2개는 동일해야 합니다. 왜냐? 모든 요소가 동일.
그런데 2번째가 더 길게 나옵니다. 2번쩨 속도측정은 A~J 에 숫자를 받는 건 동일하지만, 오른쪽에 그걸 재계산하는 K행이 더 있어요.
그렇다해도 이 K행 과정은 속도측정 안에는 포함되지 않앗어요. 그러므로 속도측정 2개는 동일해야 합니다.
그런데 더 길게 나와요.
이유가 뭘까요?
- 속도측정은 [ 컴마다, 시간 때마다, 다르게 시간이 측정됩니다. 서로 동일한 측정이라도요 ] 라는 답변 하지 말아주세요. 제가 10000번은 해봣어요. 여기 올린 파일은 제가 질문할려고 예제 파일 만들어 올린거구요. 실제 파일은 엄청난 복잡계산 10분정도 걸리는게 있습니다. 그런데 위와 같은 .... K행이 잇다고 달라지는 경우가 정말 많았구요... 가 아니라 10000번 하면 10000번 정확하게 길어집니다. 정말 길어져요. 10분 걸리던게 20분 걸리고 그래요. 확실히 차이가 나요. 그러므로 [ 컴마다, 시간 때마다, 다르게 시간이 측정됩니다. 서로 동일한 측정이라도요 ] 답변 하지 말아주시면 감사합니다.
선
댓글 8
그렇다면 속도측정의 의미가 전혀 없어져 버리는데요. 지금까지 제가 알고 있던 모든 Timer 측정은 가짜, 결국 Timer 속도측정은 하나마나라는 결론이 되버리는데요.
https://techcommunity.microsoft.com/discussions/excelgeneral/9-quick-tips-to-improve-your-vba-macro-performance/173687
상황을 알면 더 좋을 것 같습니다만.. 실행속도는 상황마다 다 다르게 측정되기 때문에 보통 어느정도로 동작하는지 참고할 때만 사용하는게 좋습니다