当在一个时间范围内改变数值时,VBAfunction提醒

我有一个excel单元,其值每分钟更新一次。

我需要的是一个警告消息框; 而单元格值则移动到特定的时间。

假设一个单元格的值为10:

  • 如果在一分钟内达到7,那么我需要一个消息框来提醒。

  • 如果一分钟内没有达到7,那么我不需要任何警报。

请帮我写一个这个macros。

在ThisWorkBook的VBA编辑器里面,你可以编写下面的代码

Dim WithEvents SheetToWatch As Worksheet Private Sub SheetToWatch_Change(ByVal Target As Range) If Target.Address = "$A$2" Then If Target.Value = 7 Then MsgBox "changed to 7" End If End If End Sub Private Sub Workbook_Open() Set SheetToWatch = Sheets("Sheet1") End Sub 

工作簿打开时,代码基本上将Sheet1的引用设置为variablesSheetToWatch 。 使用WithEvents声明variables让我们捕获事件。

我正在使用工作表的Change事件,并检查是否更改的单元格是A2。 如果是这样,我正在检查或比较值7(它可以是dynamic的,取决于你想如何处理它)。

看看这是否有帮助。

无法用function来完成任何我能想到的方式。

如果您控制更新单元的机制,那么您可以调用您编写的VBA子例程,而是必须发送警报,然后从该例程更新单元。

如果你不控制更新机制,那么我能想到的唯一可能的工作是单元格,范围或工作表类有一个ChangedDate事件,你可以从VBA中捕获,并从那里进行警报。