2017-04-04 74 views
0
值和日期的差異在另一個小區的小區

考慮我有在Excel表格中的 - 細節如下: enter image description here如何基於色彩的使用VBA

而另一表B如下 enter image description here

我想輸出如下, 表B中的名稱必須用表A中的名稱進行檢查,並且應該從表A中選取相應的StartDateEndDate,並且應該將其與表B中的日期以及該名稱下的單元進行比較表A中的Status應塗綠色S IN「進行中」,或紅色,如果在「暫停狀態」

例如:
考慮傑克在表B中,其具有3條記錄在表A中,第一個起始日期應即4-Apr-2017和結束日期拾取如27-Apr-2017,並且必須根據狀態字段進行相應的着色。 enter image description here

如何在Excel中使用VBA /任何東西來實現此目的。我是VBA新手。

+1

首先,我沒有看到任何沒有VBA的機會。但是StackOverflow不是一個免費的代碼寫作服務,也不能教會如何編寫VBA代碼(因此論壇是正確的地方,這是一個基於問題/答案的網站)。通常人們會在這裏爲他們自己編碼的問題帶來一個具體問題。所以你需要自己開始,並回到你的代碼和一個更具體的問題,我想。 –

+0

同意,我曾嘗試使用條件格式,但它打破了。 嘗試在VBA中使用for循環 - 它也打破了這種想法,將它作爲新的學習主題發佈。 –

回答

0

是的,你可以在VBA中做到這一點,但我會建議使用條件格式(公式),因爲它不需要編程知識。爲此,您需要使用Vlookup formula

我相信你想要的輸出是圖片鏈接中的東西嗎? Example table

要進行條件格式設置,請在「主頁」選項卡的「樣式」 - >「條件格式」下查找。突出顯示要格式化的單元格,然後選擇「條件格式」 - >「新建規則」。這將導致一個新的窗口彈出。選擇「使用公式確定要格式化的單元格」。

你會想要2個條件格式。

1.如果日期在開始日期和結束日期之內,則顯示爲綠色。爲此,請選擇甘特圖中的第一個單元格(示例中的單元格B8),然後輸入下面的公式。

=IF(AND(B$7>=VLOOKUP($A8,$A$2:$D$5,3,FALSE()),B$7<=VLOOKUP($A8,$A$2:$D$5,4,FALSE())),TRUE(),FALSE()) 

2.要在用戶的項目超出截止日期時顯示紅色,請在高亮顯示的同一單元格中輸入下面的公式。

=IF(B$7>VLOOKUP($A8,$A$2:$D$5,4,FALSE()),TRUE(),FALSE()) 

一旦做到這一點,你可以應用格式刷或複製和粘貼使用條件格式來擴展你的表/甘特圖的單元格。

請注意,$符號非常重要,因爲它們會鎖定公式中的相對參考位置。以第二個公式爲例,B $ 7表示日期,並且您需要將引用鎖定到所有日期都是的第7行。另一方面,列引用(列B)可以根據需要更改爲列,以便與其他日期進行適當比較。

對於每個用戶的多個項目,您可以擴展您的最初問題嗎?你想跟蹤每個用戶還是每個項目?我假設你正在創建一個甘特圖來追蹤一個項目。在這種情況下,追蹤分配給人員的具體任務會更有意義。您可以根據任務修改給予跟蹤的示例。

+0

我沒有看到像這樣的公式專用方法在每個用戶的基礎上如何處理多個任務的機會,正如他在他的問題中所表明的那樣。 –

+0

公式只有方法仍然可以工作,雖然有一個過長的公式。但是,這個問題對預期結果有點不清楚,需要稍微改進。目前,我解釋爲每個用戶一次只能有一個任務處於活動狀態,這可能並不是Job AJ所要求的。否則,我會建議專門跟蹤每個項目,而不是按每個用戶進行跟蹤。 – Impuls3H