¿Existe un equivalente a Thread.Sleep()
en Access VBA?¿Existe un equivalente a Thread.Sleep() en VBA
Respuesta
Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Utilice la siguiente sintaxis para llamar a la función del sueño:
Sub Sleep()
Sleep 1000 'Implements a 1 second delay
End Sub
Ahh acaba de encontrar que yo mismo. ¡Gracias! –
Debo señalar que en Excel 2007, puedo llamar a Sleep directamente sin el envoltorio VBA sub. –
La declaración Declare debe estar en un módulo para evitar el error "Declarar declaraciones no permitidas como miembros públicos del objeto". – HuckIt
Se requiere un par de modificaciones para obtener el código para trabajar. El código siguiente es la versión corregida.
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Sub SleepVBA()
Sleep 1000 'Implements a 1 second delay
End Sub
Otra forma sin usar kernel32:
Dim started As Single: started = Timer
Do: DoEvents: Loop Until Timer - started >= 1
Adición
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
problemas adicionales creados alguna manera en otro lugar en mi código. Terminé usando esta función que he encontrado en otro foro y tweeked un poco:
Function WaitTime(n As Double)
'Function that wait an amount of time n in seconds
TWait = Time
TWait = DateAdd("s", n, TWait)
Do Until TNow >= TWait
TNow = Time
Loop
End Function
esperanza de que esto ayude :)
La única razón por la que puedo pensar que agregar el encabezado de función causaría "problemas" es si ya estaba usando el nombre de la función "Suspensión" en un módulo o clase en el proceso actual. –
Yo uso esta en Excel y funciona muy bien:
Application.Wait DateAdd("s", 1, Now())
DateAdd() es una función que establece un tiempo, relativo a Now()
(en este caso, puede usar otros valores como su argumento), "s"
es la medida de tiempo (segundos en este caso), y el incremento es 1. Entonces aquí, la llamada de función está diciendo a la aplicación licación esperar 1 segundo.
See also for more detail about the use of the DateAdd
function.
Todo el resto de los métodos para hacer que Excel esperar el resultado en Excel convertirse totalmente insensible. La solución para hacer que Excel espere mientras se asegura una interfaz de usuario receptiva es llamar a este espera Sub con el número de segundos para esperar.
Sub Wait(seconds As Integer)
Dim now As Long
now = Timer()
Do
DoEvents
Loop While (Timer < now + seconds)
End Sub
El problema con el uso de este método es que DoEvents termina usando casi todo el tiempo de la CPU. – phrebh
Es posible utilizar el procedimiento Excel Wait() de Access VBA.
El primer paso es garantizar que la biblioteca de Excel se haga referencia desde su proyecto.
Cuando eso se hace el siguiente código trabajará para esperar durante diez segundos:
Call Excel.Application.Wait(Time:=DateAdd("s",10,Now()))
- 1. Existe un equivalente a size_t en llvm
- 2. ¿Existe un .Net equivalente a java.util.concurrent.Executor?
- 3. Alternativas a Thread.Sleep()
- 4. ¿Existe un equivalente a sp_getapplock, sp_releaseapplock en oráculo
- 5. ¿Cuál es el equivalente de Thread.sleep() de Java en JavaScript?
- 6. ¿Existe un Java equivalente a los datos principales de Apple?
- 7. ¿Existe un código abierto equivalente a Amazon S3?
- 8. ¿Existe un ASP MVC equivalente a las etiquetas JSTL?
- 9. ¿Existe un código abierto equivalente a Amazon SNS?
- 10. ¿Existe un ColdFusion equivalente a PHP para include_once?
- 11. ¿Existe un Oracle equivalente a OUTPUT INSERTED de SQL Server. *?
- 12. Alternativas a Thread.Sleep() para simular pausas
- 13. ¿Existe un equivalente genérico a ArrayIterator de Apache Commons Collections?
- 14. ¿Existe un equivalente no global de perlbrew?
- 15. ¿Existe un equivalente xhtml.xsd disponible para HTML5?
- 16. ¿Cuál es el equivalente de "! =" En Excel VBA?
- 17. ¿Existe un equivalente elegante para Mac?
- 18. VBA equivalente a la función de mod de Excel
- 19. ¿Existe un ClientScriptManager.RegisterClientScriptInclude equivalente para CSS
- 20. ¿Existe un Python equivalente al comando 'which'
- 21. Thread.Sleep alternativa en Java
- 22. Equivalente a 'este' puntero
- 23. ¿Existe un javascript equivalente para descomprimir secuencias como en python?
- 24. Excel VBA Si WorkSheet ("wsName") Existe
- 25. ¿Existe un equivalente en "lanzamiento" de T-SQL a C#? para volver a lanzar excepciones?
- 26. Buscando una alternativa sencilla a Thread.Sleep
- 27. ¿Existe el equivalente de un conjunto de Java en php?
- 28. ¿Existe un equivalente de print_r de PHP en Ruby/Rails?
- 29. ¿Existe un equivalente PostgreSQL de SELECT @@ ROWCOUNT en T-SQL?
- 30. ¿Existe un equivalente de InnerText en BeautifulSoup/python?
Esta es una pregunta más frecuente de acceso, y encontrará http://mvps.org/Access/ estar una fuente importante de respuestas a preguntas frecuentes. –