如何根据当前日期将条件格式应用于一系列单元格(Excel 2007)?
我有一个为期六周的计划(每列代表一周中的一天(周一至周五,周末排除))并且我希望在每天通过时将每个列着色为绿色而没有任何用户交互,所以当我看着它,它会准确地每天“标记”。
这是我希望实现的目标:我在1月1日星期一查看该计划。然后,我要到1月4日星期四才能访问它;一旦计划开启,我将看到列MW已被绿色阴影,而六周剩余时间的其余计划仍然没有阴影,这应该在六周计划的剩余时间内继续
这可能吗?
我认为VBA将用于检查系统时间,然后根据它的日期应用格式。
非常感谢。
更新
这就是我的计划者的样子:
答案 0 :(得分:2)
当然,这是可能的。以下内容应该让您走上正轨。
首先,您可以通过在工作簿关闭时将当前日期/时间存储在单元格中来记录上次访问工作簿的时间。这可以使用Workbook_BeforeClose
事件来完成,该事件必须放在工作簿模块中。打开VBA编辑器( Alt - F11 ),然后打开ThisWorkbook
模块并将此代码粘贴到其中。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheet1.Range("B2").Value = Now()
End Sub
每次关闭工作簿时,将在单元格B2中记录关闭时间的日期/时间(根据需要更改)。
在单元格B3中,使用=NOW()
Excel公式显示当前日期时间。单元格B2和B3现在定义应突出显示列的间隔。
然后如何格式化列...假设您的列具有日期标题,如上图所示。选择“日历”范围(上例中的C5:I12),然后点击条件格式&gt;新规则...&gt;使用公式。该公式应为=AND(C$5>$B$2,C$5<$B$3)
,这意味着只有标题中的日期在上次关闭工作簿之后,但在此之前(根据需要调整)的列将被格式化。点击格式... 以选择例如绿色填充,或其他什么。然后确定。
当然,您可以通过多种方式对其进行改进(例如,四舍五入到午夜的前一天或下一天),但至少您现在应该走在正确的轨道上。
答案 1 :(得分:0)
使用此条件格式公式:
= IF(DAYS360(DATE(B $ 2; B $ 3; B $ 4); TODAY())→1; 1; 0)
做的是什么 如果(这个colums日期和今天之间的差异超过1天,则为真,否则为假)
在像这样的表格中使用它