创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的内容,而只能看到关于需要处理的事情和突出显示的内容。