【发布时间】:2016-04-18 17:47:34
【问题描述】:
我有一个链接到实时数据 (=Tickers!Z12) 的单元格 (A1)。我想在五分钟内捕获所有价格范围。我的问题是我正在尝试使用 Worksheet_Change 方法,但如果单元格 (A1) 已制定,则当值更改时它不会更新。如果我手动更改值,它工作正常。但我需要捕获公式生成的值,然后在每次值更改时复制并粘贴 B 列中的值。这是我到目前为止所拥有的。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Range("A1").value <> Range("B2").value Then
Range("A1").Select
Selection.Copy
With ActiveSheet
LastRow = .Cells(.rows.Count, "B").End(xlUp).row + 1
.Cells(LastRow, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues
End With
End If
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub
【问题讨论】:
-
this thread 有什么帮助吗?还是this one?你尝试过什么,什么没用/没用?
-
是什么导致A1中的公式重新计算?
-
是什么导致单元格Tickets!Z12中的数据刷新?你使用自动刷新选项吗?
-
我正在使用 dde 链接来检索不同工作表(代码)上的实时数据,我只是通过 =Tickers!Z12 链接到它。我不确定如何通过 dde 链接处理重新计算。
-
每秒刷新可能会产生不必要的影响。如果您确实选择了它,请确保您实施 DoEvents 否则 Excel 可能会冻结。由于我们不确切知道您的 dde 链接是如何工作的,请尝试检测正确的事件。也许 worksheet_calculate 正如 vacip 所建议的那样。如果找不到事件,您最终将不得不使用 Timer/Sleep 方法。