Excel - 条件格式 - 基于当前日期的更新

问题描述:

如何根据当前日期将条件格式应用于一系列单元格(Excel 2007)?Excel - 条件格式 - 基于当前日期的更新

我有一个为期六周的计划(每一列代表一周中的一天(周一到周五,不包括周末)),并且我希望在每天过去的时候以绿色为阴影,而不需要任何用户交互,所以当我看着它时,它每天都会精确地“标记出来”。

这是我希望实现的:我在1月1日星期一看这个计划。直到1月4日星期四我才能访问;一旦计划打开,我会看到,专栏的MW被遮住了绿色,而六周剩余时间的剩余计划的其余部分仍然没有阴影,这应该在六周计划的剩余时间内继续。

这可能吗?

我会想象VBA将被用来检查系统时间,然后根据它在哪一天应用格式。

非常感谢。

UPDATE

这是我的节目的样子:

Planner

当然,这是可能的。以下应该会让你走上正轨。

首先,您可以通过在工作簿关闭时将当前日期/时间存储在单元格中来记录上次访问工作簿的时间。这可以使用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现在定义了您的列应该突出显示的时间间隔。

enter image description here

那么如何格式化列...说你的柱有日期标题如上图所示。选择您的“日历”范围(上例中的C5:I12),然后单击条件格式>新规则...>使用公式。该公式应为=AND(C$5>$B$2,C$5<$B$3),这意味着只有标题中的日期上次在工作簿关闭之后,但现在(在您认为合适时调整)的列将被格式化。点击格式...选择例如绿色填充,或其他。然后好吧

enter image description here

当然,你可以在很多方面完善这一目的(例如舍入到前或次日午夜),但至少你应该是在正确的轨道上了。

+0

感谢您对这个奇妙的,详细的解答。我已经尝试了你所说的一切,但条件格式不起作用;我已经在必要时更改了单元格范围等,但它不起作用。日期(B4-AD4)以DD/MM/YYYY格式输入。如果有帮助,我添加了一个截图。谢谢。 – MusTheDataGuy

+0

听起来像你,只需要尝试一下条件格式来了解它是如何工作的。它需要一些习惯。我总是在第一次尝试时就把它搞砸了,而且通常需要我进行几次迭代才能正确完成。如果你有条件格式的特定问题,我建议你问一个新问题。 –

使用此条件格式公式:

= IF(DAYS360(DATE(B $ 2; B $ 3; B $ 4); TODAY())> 1; 1; 0)

什么是不被 如果(这之间的区别colums日期,今天更多的则是1天,是真实的,否则为false)

使用它在片状 enter image description here