簡體   English   中英

Excel VBA 月份和年份下的顏色單元格取決於其他工作表中的單元格值(日期)

[英]Excel VBA Color cell under month and year depends on cell value (date) in other sheet

我有兩張紙:

EXCEL 在此處輸入圖像描述

EXCEL2

結果結果

基本上什么日期在名稱前面的圖像(EXCEL 2)中相同的日期將在 excel 第二張表(圖像 EXCEL)中以相同月份和年份的名稱前面的顏色形式表示。

對不起,我無法找出任何代碼或任何完全空白的東西。 希望在這里得到一些幫助謝謝結果像圖像 3 如果日期在工作表顏色中更改並且月份應該更新為新日期

如果我理解正確的話......

在運行宏之前,兩張紙(sh1 和 sh2)的情況是這樣的:

在此處輸入圖像描述

運行 sub 后的預期結果如下圖所示

在此處輸入圖像描述

Sub test()
Dim dt As Date: Dim t0 As Date: Dim t1 As Date: Dim t2 As Date
Dim rgT As Range: Dim rgN As Range: Dim c As Range: Dim cell as Range

With Sheets("sh2")
    Set rgT = .Range("A2", .Range("A2").End(xlDown))
End With

With Sheets("sh1")
    .Range("A2:Z1000").Interior.Color = xlNone
    Set rgN = .Columns(1).SpecialCells(xlConstants)
End With

dt = "1-jan-2023"

For Each cell In rgT

    t0 = cell.Offset(0, 1).Value
    t1 = cell.Offset(0, 2).Value
    t2 = cell.Offset(0, 3).Value

    Set c = rgN.Find(cell.Value, lookat:=xlWhole)
    
    If Not c Is Nothing Then
        c.Offset(0, DateDiff("m", dt, t0) + 1).Interior.Color = vbGreen
        c.Offset(0, DateDiff("m", dt, t1) + 1).Interior.Color = vbRed
        c.Offset(0, DateDiff("m", dt, t2) + 1).Interior.Color = vbBlack
    End If
    
Next

End Sub

rgT 變量是 sh2 中 A 列的范圍。 它假設整個表格中沒有空白單元格(單元格 A2:D6)。

rgN 變量是 sh1 中 A 列的范圍。

基本上,代碼只是從起始“基准”日期與 sh2 中的 test/test1/test2 中的每個日期獲取月份差異。 在本例中,“基准”是 dt 變量,其值為 01-January-2023。

它循環到 rgT 中的所有單元格,並檢查是否在 rgN 中找到循環的單元格值作為 c 變量,然后用所需的顏色填充所需的單元格。

僅供參考,如果 sh1 看起來像您的圖像,那么您需要為每個 c.offset 添加 2,因為在帶有名稱的單元格和起始“基准”單元格之間有一列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM