簡體   English   中英

根據其他單元格值突出顯示一個單元格

[英]Highlight A cell based on the other cell values

如果 E 列下的單元格為空白,並且 C 列下的相應值為“人員”,則我試圖突出顯示該單元格。 下面的工作不能做同樣的事情。 誰能幫我這個?

Sub Personnel()
'Check for missing Personnel Information'
    Dim rRng As Range, rRng1 As Range, c
    lRow = Range("A" & Rows.Count).End(xlUp).row
    Set rRng = Range("C1:C" & lRow)
    Set rRng1 = Range("E1:E" & lRow)
      For Each cell In rRng
        If rRng.cell.Value = "Personnel" And rRng1.cell.Value = "" Then
        cell.Interior.ColorIndex = 6
        cell.AddComment "Mapping Info is missing"
        End If

    Next cell
End Sub
  1. 您可以使用Offset(Row Offset, Column Offset)從一個單元格導航到另一個單元格。 由於您正在循環Column C並想要檢查Column D的值,即右側 2 列,您可以使用rCell.Offset(0, 2)
  2. 使用工作表限定您的范圍。 我聲明了變量ws來做到這一點。 您還可以使用With
  3. 不要使用cell ,聲明一個用於循環的范圍變量。 這里我們使用rCell循環遍歷范圍rRng
  4. 正確縮進代碼對可讀性大有幫助。 這將使調試、將來更新和編寫過程變得更容易。

Option Explicit

Sub Personnel()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim rRng As Range, rCell As Range, LR As Long

LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rRng = ws.Range("C1:C" & LR)

    For Each rCell In rRng
        If rCell = "Personnel" And rCell.Offset(0, 2) = "" Then
            rCell.Interior.ColorIndex = 6
            rCell.AddComment "Mapping Info is missing"
        End If
    Next rCell

End Sub

我看到您為此創建了一個名為“Personel”的宏,這意味着您需要啟動該宏才能完成此突出顯示。 在很多情況下,這意味着人們不知道這可以使用條件格式自動完成。

讓我向您解釋如何使用條件格式執行此操作:在條件格式頁面中,您選擇“新規則”、“選擇公式”(假設您要為單元格 E2 執行此操作),然后輸入以下公式:

=AND(ISBLANK(E2);C2="Personel")

為什么這個公式,我怎么知道它是正確的? 很簡單:首先我在另一個單元格(不是 E2)中輸入這個公式,然后查看結果是否為“TRUE”。

然后,您將這種條件格式應用於您需要的 E 列中的每個單元格,突出顯示將自動執行,而無需啟動宏。

如果您確實想為此繼續使用 VBA,請告訴我,我將刪除此答案。

暫無
暫無

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

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