我有一个excel单元格,其值每分钟更新一次。
我需要的是一个警告信息框;而那个单元格值会移动到特定时间。
假设一个单元格的值为10:
如果它在一分钟内达到7,那么我需要一个消息框来提醒它。
如果一分钟内没有达到7,那我就不需要任何提醒。
请帮我写一个宏。
答案 0 :(得分:5)
在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的引用设置为变量SheetToWatch
。使用WithEvents
声明变量可以捕获事件。
我正在使用工作表的Change
事件并检查更改的单元格是否为A2。如果是这样,我正在检查或比较7的值(它可以是动态的,取决于你想如何处理它)。
看看这是否有帮助。
答案 1 :(得分:0)
无法以任何我能想到的方式完成功能。
如果您控制正在更新单元格的机制,那么您可以调用您编写的VBA子例程,而不必发送警报,然后从该例程更新单元格。
如果你不控制更新机制,那么我能想到的唯一可能有用的是Cell,Range或Worksheet类有一个ChangedDate事件,你可以从VBA捕获并从那里做警报。