He estado trabajando en la hoja de cálculo de muestra EXCEL DDE y funciona bien y ahora me gustaría actualizar a ActiveX en lugar de DDE ya que escuché que es más robusto pero descubrí que la velocidad de actualización de ActiveX es aún más lenta que la de la conexión DDE. ¿Hay alguna manera de cambiar el valor predeterminado más pequeño de "1 segundo a un valor más pequeño para acelerar la velocidad de actualización? la velocidad de actualización de DDE puede reducirse a varios milisegundos. Agradecería mucho si alguien pudiera ayudarme. Gracias
Respuestas
¿Demasiados anuncios?No uses ni DDE
ni ActiveX
, utiliza la api del servidor RTD de Excel
.
Es la base detrás del complemento Bloomberg BDP
y lo utilizamos en el trabajo para enviar datos en tiempo real a muchas hojas de cálculo. Ahora es la forma recomendada de enviar datos a una hoja de cálculo y tiene un parámetro de frecuencia de actualización integrado que puede ser cualquier intervalo de milisegundos, o inmediato si deseas que los datos se envíen lo más rápido posible.
Para responder a la pregunta sobre cómo construir un servidor RTD, sigue este tutorial, es bastante trivial hacerlo si puedes escribir en C#. Sin embargo, necesitarás que IB te proporcione una api para obtener programáticamente las comillas que deseas para poblar el servidor RTD.
En resumen, no deberías estar utilizando ni ActiveX ni DDE para enviar comillas a Excel ya que esta es una tecnología anticuada.
En VBA Application.RTD.ThrottleInterval controla la tasa de actualización de las funciones RTD en Excel. Tenga en cuenta que un valor demasiado pequeño puede quitar demasiados recursos de la CPU y hacer que Excel responda lentamente. Una solución más elegante es tener algún objeto/proceso en memoria para manejar la actualización de datos e imprimirlo en Excel.