我目前正在使用实时数据在 Excel 中运行交易算法,因此我的 A1 单元格的值不断变化。
例如:
A1 = 3 at 930
A1 = 2 at 931
A1 = 100 at 932
A1s 值在整个过程中发生变化,我想不断地添加这些值。
所以在我的例子中,答案是 105。
有没有办法在excel中累积单元格A1的值?我不在乎时间,我只需要价值。
我没有改变值的 VBA。它实际上是一个正在输入数据的彭博终端插件。
谢谢。
使用工作表更改事件并将结果保存在不同的单元格中。将此代码放入相关工作表的代码中。
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