У меня есть формула в ячейке "D1" для получения RTD, которая работает и получает постоянно обновляемые данные.
Теперь мне нужна копия этой ячейки (только VALUE) в другой ячейке «B2», того же листа.
Когда я пытаюсь найти код, который я нашел, ячейка "B2" остается пустой.
По причинам теста я скопировал другое значение ячейки (постоянное значение) в «B2», и это сработало.
Поэтому я считаю, что существует проблема с копированием значений RTD.
Я начал с простого копирования значений:
Sheets("New sheet").Range("B2") = Sheets("New sheet").Range("D1").value
or:
Sheets("New sheet").Range("B2").value = Sheets("New sheet").Range("D1").value
Тогда я начал искать другие решения, такие как:
Sheets("New sheet").Range("D1").Select
enter code here`Selection.Copy
Sheets("New sheet").Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
или
Sheets("New sheet").Range("B2").Copy Sheets("New sheet").Range("D1").value
Не удалось с этим.
Затем я поигрался с интервалом, когда данные в "D1" получены. Возможно, код копии борется со слишком частыми данными. Поэтому я изменил интервал дросселя на несколько чисел до 10.000, но это не изменило результат.
Application.RTD.ThrottleInterval=0
Дополнительная информация:
Я ввожу формулу для получения данных RTD в «D1» непосредственно перед тем, как копировать значение в «B2».
Также попытался использовать функцию application.Wait
, чтобы дать время для обновления данных, но поскольку макрос замерзает в это время, он не изменился.
Кроме того, имитировали задержку времени с циклом while между вводом RTD-формулы и копированием значений в другую ячейку.
Настройки безопасности макросов: включено доверие к VBA-projectObjectModul и все макросы активны.
У вас есть идеи, как это решить?
Заранее спасибо!
UPDATE :
Я решил это, поместив формулу RTD только в «D1» в текущем подпрограмме, и когда этот подпункт закончен, я вызываю другой подпрограмма, которая копирует значение из «D1» в «B2»>. Это работает.
Это не сработало, вызвав другой сабвуфер в текущем сабвуфере, его нужно сначала закончить.
Спасибо всем за вклад, ценим! :)