2012-08-22 84 views
1

如何根據當前日期將條件格式應用於一系列單元格(Excel 2007)?Excel - 條件格式 - 基於當前日期的更新

我有一個爲期六週的計劃(每一列代表一週中的一天(週一到週五,不包括週末)),並且我希望在每天過去的時候以綠色爲陰影,而不需要任何用戶交互,所以當我看着它時,它每天都會精確地「標記出來」。

這是我希望實現的:我在1月1日星期一看這個計劃。直到1月4日星期四我才能訪問;一旦計劃打開,我會看到,專欄的MW被遮住了綠色,而六週剩餘時間的剩餘計劃的其餘部分仍然沒有陰影,這應該在六週計劃的剩餘時間內繼續。

這可能嗎?

我會想象VBA將被用來檢查系統時間,然後根據它在哪一天應用格式。

非常感謝。

UPDATE

這是我的節目的樣子:

Planner

回答

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現在定義了您的列應該突出顯示的時間間隔。

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

聽起來像你,只需要嘗試一下條件格式來了解它是如何工作的。它需要一些習慣。我總是在第一次嘗試時就把它搞砸了,而且通常需要我進行幾次迭代才能正確完成。如果你有條件格式的特定問題,我建議你問一個新問題。 –

0

使用此條件格式公式:

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

什麼是不被 如果(這之間的區別colums日期,今天更多的則是1天,是真實的,否則爲false)

使用它在片狀 enter image description here