Задержка между данными, полученными через Excel RTD, и «исходными данными»

Задержка между данными, полученными через Excel RTD, и «исходными данными»

У меня есть торговая (программная) программа, которая подключается к Excel (через Excel RTD) для отображения цен в реальном времени на моем листе. (Я также делаю несколько расчетов.) Но по причинам, которые я полностью игнорирую, и не всегда, но очень часто, цена, которую я вижу на моем листе, имеет некоторую задержку по сравнению с ценой, которую я вижу в моем программном обеспечении. Иногда задержка цен, отображаемых в Excel, может составлять до нескольких минут. Поскольку Excel RTD должен предоставлять данные в реальном времени, похоже, что он где-то хранит данные, когда информации слишком много. Когда я деактивирую связь между Excel и моим программным обеспечением, цены продолжают обновляться на моем листе в течение нескольких мгновений (эти «несколько мгновений» равны задержке между Excel и программным обеспечением).

Это действительно раздражает, так как я не знаю, почему Excel RTD выдает мне цены с такой задержкой! В моем листе менее 300 заполненных ячеек, что, по моему мнению, абсолютно ничего. Конечно, мой лимит Excel установлен на 0, чтобы получать каждое обновление. Я также изменил свой файл с a на .xlsxa .xlsb, но ничего не изменилось, кроме размера файла.

Похоже, что Excel действительно где-то хранит данные, но я не хочу, чтобы это происходило; мне нужны данные в реальном времени.

  • Использование последней версии Office -

Что происходит? Как мне получить мои данные в Excel в режиме реального времени?

решение1

Возможно, вам стоит рассмотреть возможность настройки интервала дроссельной заслонки RTD в Microsoft Excel, чтобы увеличить интервал дроссельной заслонки с помощью объектной модели Excel:

  1. В Excel перейдите в редактор Visual Basic (нажав ALT+F11 или щелкнув «Редактор Visual Basic» в меню «Макросы» (меню «Сервис»)).
  2. В окне Immediate (нажмите CTRL+G или щелкните Immediate Window в меню View) введите следующий код: Application.RTD.ThrottleInterval = 1000
  3. Убедитесь, что курсор находится на только что введенной строке, а затем нажмите клавишу ENTER.
  4. Чтобы проверить правильность настройки, введите следующую строку кода if в окне Immediate: ?Application.RTD.ThrottleInterval
  5. Если вы поместите курсор в конец этой строки и нажмете ENTER, должно отобразиться число 1000. Тогда вы будете знать, что ваш интервал дроссельной заслонки установлен правильно.

Прочитайте эту статью, возможно, она вам поможет: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-xp/aa140060(v=office.10)#odc_xlrtdfaq_howconfigrtdthrottle

Связанный контент