Excel - 条件格式 - 基于当前日期的更新
如何根据当前日期将条件格式应用于一系列单元格(Excel 2007)?Excel - 条件格式 - 基于当前日期的更新
我有一个为期六周的计划(每一列代表一周中的一天(周一到周五,不包括周末)),并且我希望在每天过去的时候以绿色为阴影,而不需要任何用户交互,所以当我看着它时,它每天都会精确地“标记出来”。
这是我希望实现的:我在1月1日星期一看这个计划。直到1月4日星期四我才能访问;一旦计划打开,我会看到,专栏的MW被遮住了绿色,而六周剩余时间的剩余计划的其余部分仍然没有阴影,这应该在六周计划的剩余时间内继续。
这可能吗?
我会想象VBA将被用来检查系统时间,然后根据它在哪一天应用格式。
非常感谢。
UPDATE
这是我的节目的样子:
当然,这是可能的。以下应该会让你走上正轨。
首先,您可以通过在工作簿关闭时将当前日期/时间存储在单元格中来记录上次访问工作簿的时间。这可以使用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),然后单击条件格式>新规则...>使用公式。该公式应为=AND(C$5>$B$2,C$5<$B$3)
,这意味着只有标题中的日期上次在工作簿关闭之后,但现在(在您认为合适时调整)的列将被格式化。点击格式...选择例如绿色填充,或其他。然后好吧。
当然,你可以在很多方面完善这一目的(例如舍入到前或次日午夜),但至少你应该是在正确的轨道上了。
使用此条件格式公式:
= IF(DAYS360(DATE(B $ 2; B $ 3; B $ 4); TODAY())> 1; 1; 0)
什么是不被 如果(这之间的区别colums日期,今天更多的则是1天,是真实的,否则为false)
使用它在片状
感谢您对这个奇妙的,详细的解答。我已经尝试了你所说的一切,但条件格式不起作用;我已经在必要时更改了单元格范围等,但它不起作用。日期(B4-AD4)以DD/MM/YYYY格式输入。如果有帮助,我添加了一个截图。谢谢。 – MusTheDataGuy
听起来像你,只需要尝试一下条件格式来了解它是如何工作的。它需要一些习惯。我总是在第一次尝试时就把它搞砸了,而且通常需要我进行几次迭代才能正确完成。如果你有条件格式的特定问题,我建议你问一个新问题。 –