VBA如何识别包含更改值的单元格中的最高值



我有一个单元格,它包含不断变化的值的连续数据馈送。单元格可以"实时"显示正数和负数。单元格的值总是从正值开始,并呈上升趋势。这个数字在达到最高点之前会随着时间的推移而上下波动。当单元格达到其最高趋势点(或最高数值(时,我需要确定单元格的数值。更具体地说,我需要在单元格的数值开始一致地朝着负方向(即"转折点"(发展之前,确定单元格的最高正值。我需要通过在"消息框"中显示单元格的最高正值和描述性文本来通知用户。这个操作结束了这个过程。

我知道如何确定一个范围内的最大值和大值。然而,这并不有用,因为我不知道如何计算具有动态数据的单元格的"真正最大值"。

谢谢。

您可能会发现worksheet_change函数很有用。这允许您在每次单元格更改时运行代码(请参阅此处的官方文档(。

您可以在工作簿中的某个位置留出一个单元格来容纳最大值(可能一开始设置为零(,然后每次更改实时数据单元格时,使用worksheet_change函数检查是否需要更新最大值,或显示一个消息框。

以下函数应能处理所描述的任务:

Private Function ShowMsg(NextValue As Double) As Double
Static CurrentValue As Double
Static bMsgWasShown As Boolean
If CurrentValue <= NextValue Then
CurrentValue = NextValue
bMsgWasShown = False
Else
If Not bMsgWasShown Then
Call MsgBox("Max value is " & CurrentValue & " now, next value will be " & NextValue, _
vbInformation, "New local maximum reached")
bMsgWasShown = True
End If
End If
ShowMsg = CurrentValue
End Function

称之为=ShowMsg(G2),其中G2是你的";一个包含变化值的连续数据馈送的单元">

最新更新