3

我在单元格“D1”中有一个用于接收 RTD 的公式,它可以工作并获得不断更新的数据。现在,我需要在另一个单元格“B2”(同一个工作表)中复制这个单元格(只有 VALUE)。当我尝试到目前为止找到的代码时,“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”中数据的间隔。也许复制代码与过于频繁的数据作斗争。所以我将 Trottle Interval 更改为最多 10.000 的几个数字,但这并没有改变结果。

Application.RTD.ThrottleInterval=0

附加信息: 在将值复制到“B2”之前,我直接在“D1”中输入了接收 RTD 数据的公式。也尝试了application.Wait给数据时间更新的功能,但由于宏在这个时间冻结,它没有做任何改变。此外,在输入 RTD 公式和将值复制到另一个单元格之间使用 while 循环模拟了时间延迟。

宏安全设置:启用信任 VBA-projectObjectModul 并且所有宏都处于活动状态。

你有什么想法如何解决这个问题吗?提前致谢!

更新:我通过仅将 RTD 公式放在当前子的“D1”中解决了这个问题,当这个子完成时,我调用另一个子,将值从“D1”复制到“B2”> 这有效。通过调用当前子中的另一个子不起作用,它必须先完成。

谢谢大家的投入,不胜感激!:)

4

0 回答 0