我有一个流式工作表,可以接收所有数据。制作了另一个名为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
答案 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
代替复制范围。