Боюсь, не совсем корректно сформулировал вопрос.
По сайту прочел все темы, найденные по запросу "обновление по DDE",
там все о выполнении макроса при изменении ячейки по DDE,
может, мне просто не хватило знаний, но не смог применить их
к моей задаче:
у меня на отдельный лист L2 по DDE из сторонней программы добавляются строки данных,
по нескольку строк в секунду.
В процессе выполнения макроса мне нужно дождаться прихода новой строки данных.
Причем хотелось бы сделать это не по прерываниям (типа Private Sub Worksheet_Change)
а в процессе выполнения макроса, просто приостановив его выполнение до прихода новой строки или по
временной задержке.
Ухищрения типа:
Код |
---|
Sheets("L1").Cells(1,1) = Sheets("L2").Cells(Rows.Count, 2).End(xlUp).Row
Application.Wait (Now + TimeValue("00:00:10"))
Sheets("L1").Cells(1, 2) = Sheets("L2").Cells(Rows.Count, 2).End(xlUp).Row
|
не дают новых строк, хотя их за 10 сек должно было придти несколько.
Подозреваю, что решение где-то рядом, типа обновить L2, но не придумать, как это сделать.
P.S.
на листе L2 пробовал сделать (добавив туда ячейку с расчетом, зависящую от вводимых данных)
Код |
---|
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Sheets("L1").Range("I15").Value = Sheets("L1").Range("I15").Value + 1
Application.EnableEvents = True
End Sub |
в ячейке I15 счетчик визуально считает, но когда пытаюсь в макросе дождаться его увеличения
хотя бы на 1 - ячейка I15 все время дает одно и то же значение.