Un ejemplo claro para usar
DoEvents:
For i = 1 to 1000
Label1.Caption = i
Next i
Al ejecutar esto, el usuario sólo alcanzará ver el número 1000 de forma instantánea. Si queremos mostrar el progreso del bucle podemos usar lo siguiente:
For i = 1 to 1000
Label1.Caption = i
If i Mod 10 = 0 Then
DoEvents
Sleep 250
End If
Next i
Esta nueva condición que hay dentro del bucle hace que el código entre en modo Sleep cada 10 iteraciones. Es facil... Dividimos la variable i entre 10, si el resto de la división es 0 entonces la condición se cumple. En este ejemplo el usuario verá:
1,10,20,30,40, ..., 980, 990, 1000
Si cambiamos la condición:
If i Mod 50 Then
El usuario obtendrá:
1,50,100,150, ..., 950, 1000
(
Ojo, Sleep es una API que no he declarado en este ejemplo, para usarla primero hay que declarar dicha API)
Saludos!!