我正在尝试突出显示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
答案 0 :(得分:2)
Offset(Row Offset, Column Offset)
从一个单元格导航到另一个单元格。由于您要遍历Column C
并想检查Column D
中的值(该值在右边2列),因此可以使用rCell.Offset(0, 2)
ws
来做到这一点。您还可以使用With
块cell
,声明要用于循环的范围变量。在这里,我们使用rCell
遍历范围rRng
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
答案 1 :(得分:0)
我看到您为此创建了一个名为“ Personel”的宏,这意味着您需要启动该宏才能完成突出显示。在某些情况下,这意味着人们不知道使用条件格式可以自动完成此操作。
让我向您解释如何使用条件格式:在条件格式页面中,选择“新规则”,“选择公式”(假设您想对单元格E2进行此操作),然后输入以下公式:
=AND(ISBLANK(E2);C2="Personel")
为什么这个公式以及我怎么知道它是正确的?很简单:首先,我在另一个单元格(不是E2)中输入此公式,然后查看结果是否为“ TRUE”。
然后将这种条件格式应用于所需的E列中的每个单元格,并且突出显示将自动执行,而无需启动宏。
如果您确实想继续使用VBA,请告诉我,我将删除此答案。