创build一周后popup

我有一个date列,我希望在每个date的一个星期后通过popup显示。

我不了解macros。 每次打开文档时都必须运行macros吗?

这是我迄今为止所做的:

Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long For i = 1 To Rows.Count if Cells(i, 1).Value<(TODAY()+7) And Not IsEmpty(Cells(i, 1).Value) then MsgBox Cells(i,1).Value + "Needs your attention!" Cells(i, 1).Font.Color = vbRed End If Next i End Sub 

还没有testing呢。

从可用性的angular度来看,不build议使用popup每个逾期项目。 你唯一能做的就是惹恼在三周假期后打开工作簿的可怜的草皮,并且必须在243个消息框中点击确定。

作为另一种方法,您可能需要考虑条件格式来突出显示工作表中过期的项目。 有条件的格式化很容易完成,并且是为那个工作而devise的。

使用与条件格式相同的逻辑,如果任何项目过期,然后使用VBApopup一个单一消息框,build议用户照顾电子表格中突出显示的数据。

当然,这可以完全没有VBA,在电子表格的单元格中使用条件格式来显示任何项目过期时的消息。

后者可以在任何Excel版本中使用,任何文件types,并且不需要启用macros的文件或任何涉及macros的环境。

请devise您的电子表格与最终用户考虑。

评论后编辑:

考虑下面的截图:

在这里输入图像说明

在列A中突出显示使用公式=A5<TODAY()-7进行条件格式化

B列在B5中将此公式复制下来: =A5<=TODAY()-7 ,这与条件格式中使用的公式相同。

单元格B2有一个计算B5及以下的“真”值的公式,如果至less有一个TRUE值,则显示一条消息。 公式是

=IF(COUNTIF(B5:B10,TRUE),"There are "&COUNTIF(B5:B10,TRUE)&" overdue items in the list","")

这只是一个粗略的概述。 将消息单元格移动到A列,隐藏B列,这样用户就不会看到TRUE / FALSE的内容,而只能看到关于需要处理的事情和突出显示的内容。