Спящая в VBA (Целочисленное переполнение !!) - PullRequest
0 голосов
/ 28 мая 2010

В VBA вы можете

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

чтобы обеспечить себя рутиной сна.

Однако Long, который должен быть передан подпрограмме, кажется, переполняется для значений, превышающих 32000 миллисекунд.

Есть ли способ спать в течение более длительных периодов времени без сложности объединения нескольких последовательных вызовов в процедуру сна?

1 Ответ

2 голосов
/ 28 мая 2010

Нет, оно не переполняется, если только ваш код, который вычисляет необходимое количество миллисекунд, не вызывает переполнение.

Пример:

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

Пример 2:

dim t as long
t = 10000! * 10000 / 10000 'Ok
...