1

我目前正在使用实时数据在 Excel 中运行交易算法,因此我的 A1 单元格的值不断变化。

例如:

A1 = 3     at 930
A1 = 2     at 931
A1 = 100   at 932

A1s 值在整个过程中发生变化,我想不断地添加这些值。

所以在我的例子中,答案是 105。

有没有办法在excel中累积单元格A1的值?我不在乎时间,我只需要价值。

我没有改变值的 VBA。它实际上是一个正在输入数据的彭博终端插件。

谢谢。

4

1 回答 1

3

使用工作表更改事件并将结果保存在不同的单元格中。将此代码放入相关工作表的代码中。

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
于 2013-08-27T18:32:31.563 回答