每5分钟捕获一次流数据差异

时间:2019-02-20 10:21:19

标签: excel vba

我有一个流式工作表,可以接收所有数据。制作了另一个名为Workarea的工作表,其中使用= Streaming复制了该数据! B1等。现在,我每5分钟需要一个完整的列值差。该值不断增加,并且每天早晨从0开始。将要添加另一个工作表5分钟,并在那里获得差异。总单元格为98 B1:B98。 我确实尝试了xlspecialpaste命令,但它从复制的单元格中减去了目标,并将该值设置为负数。同时复制公式,使数据根据原始流数据不断变化。 谢谢

这就是我所拥有的。

Option Explicit 
Public dTime As Date 

Sub ValueStore() 
Dim nr As Long 
With Worksheets("Sheet1") 
.Range("B1:B98").Copy 
.Range("C1:C98").PasteSpecial _ Operation:=xlPasteSpecialOperationSubtract 
End With 

Call StartTimer 

End Sub 

Sub StartTimer() 
dTime = Now + TimeValue("00:05:00") 
Application.OnTime dTime, "ValueStore", Schedule:=True 
End Sub 

Sub StopTimer() 
On Error Resume Next 
Application.OnTime dTime, "ValueStore", Schedule:=False 
End Sub

1 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,那么B列中的公式会一直更新,并且您希望每5分钟对这些值进行一次“快照”。

为此,您只需使用range(destinationRange).Value = range(sourceRange).Value

要做一个计算,一个简单的循环就可以解决问题:

With Worksheets("Sheet1")
Dim i as Long
     For i = 1 to 98
         If IsNumeric(.Cells(i,3).Value) then
            .Cells(i,3).Value = .Cells(i,2).Value - .Cells(i,3).Value
         Else
            .Cells(i,3).Value = .Cells(i,2).Value
         End If
     Next
End With

代替复制范围。