Получение данных RTD в верхнем ряду - PullRequest
0 голосов
/ 02 марта 2020

При использовании RTD получение новых данных в последующих строках (lrow) по мере их поступления не является проблемой.
Но это помещает новые данные в последнюю строку, и я хочу, чтобы они были в верхней строке, что в моем случае это строка 13.
Чтобы достичь этого, я вставляю новую строку в строку 13 каждый раз, когда она получает новые данные из формулы RTD в строке 12.
Но приведенный ниже код вставляет 58 строк, заполненных каждым новым данными, в виде ниже показан код.
Application.Wait из 0,5 se c не имеет никакого эффекта, и 1 se c принудительно обновляет каждые se c с такими же избыточными данными, блокируя RTD для обновления sh с новыми данными.
Каждый фактический интервал притока данных составляет споради c - от одной (или меньше?) До нескольких секунд.
Что мне здесь не хватает или как это можно надежно решить, пожалуйста?
TIA!

Private Sub Worksheet_Calculate()

    capturerow = 12
    currow = 13

        Application.ScreenUpdating = False

    If Cells(12, 2) = "" Then
        Cells(currow, 1) = Format(Now(), "hh:mm:ss")
        Cells(currow, 2) = Cells(capturerow, 2)
        Cells(currow, 2).EntireRow.Insert Shift:=xlDown
    End If

        Application.ScreenUpdating = True

End Sub

Выход -

Time    Last
        RTD Formula -> Row 12
              -> Row 13
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:20 25878
1:54:18 25886

1 Ответ

0 голосов
/ 02 марта 2020

Замените, пожалуйста:

Application.ScreenUpdating = False, затем Application.ScreenUpdating = True

на

Application.EnableEvents = False, затем Application.EnableEvents = True.

Когда Ваш код вставляет строку, событие Calculation снова запускается ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...