我目前在excel运行一个利用实时数据的交易算法,因此我的A1单元格的值不断变化。
例如:
A1 = 3 at 930
A1 = 2 at 931
A1 = 100 at 932
A1s值在整个过程中发生变化,我想继续添加这些值。
所以在我的例子中答案是105.
有没有办法在excel中累积单元格A1的值?我不关心时间,我只需要价值。
我没有更改值的VBA。它实际上是一个Bloomberg终端加载项,用于输入数据。
感谢。
答案 0 :(得分:3)
使用on workheet change事件并将结果保存在不同的单元格中。将此代码放在相关表格的代码中。
Private Sub Worksheet_Change(ByVal Target As Range)
Static lLong As Long
If Cells(1, 1).Value <> lLong Then
lLong = Cells(1, 1).Value
Cells(2, 1).Value = Cells(2, 1).Value + Cells(1, 1).Value
End If
End Sub
编辑:
在阅读jerussels评论后,我看到它需要更复杂一些。您需要将变量存储为全局变量,并且必须使用工作簿打开事件来存储初始值。
同样如tigeravatar所说,如果有分数的可能性,它可能是最好的双倍。
所以标准模块的顶部需要行
dim gdDouble as double
在您需要的工作簿代码中:
Private Sub Workbook_Open()
gdDouble = Sheets("sheet1").Cells(1, 1).Value
End Sub
将“sheet1”替换为工作表名称。
在你需要的表格中
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(1, 1).Value <> gdDouble Then
gdDouble = Cells(1, 1).Value
Cells(2, 1).Value = Cells(2, 1).Value + Cells(1, 1).Value
End If
End Sub