2010-05-28 3 views
0

당신이잠자는 VBA에서

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

수면 루틴 자신을 제공 할 수 있습니다.

그러나 루틴에 전달되어야하는 Long은 32000 밀리 초를 초과하는 값에 대해 오버플로됩니다.

수면 루틴에 대한 여러 차례의 연속적인 호출을 복잡하게하지 않고 오랜 시간 동안 잠을 자지 못하게 할 방법이 있습니까?

+0

"함께 여러 연속 호출을 묶는"와 같은 루프 카운트에서'Sleep'를 호출합니까? – Jay

답변

2

아니요, 필요한 밀리 초를 계산하는 코드에서 오버플로가 발생하지 않는 한 오버플로가 발생하지 않습니다.

예 :

dim t as long 
t = 10000 * 10000/10000 'Overflow 

예 2 :

dim t as long 
t = 10000! * 10000/10000 'Ok 
+0

네 말이 맞아. 문제는 필자의 논증이 충분한 증거로 Long이라는 것을 명시하지 않았다는 것이다. – mcoolbeth