比较两列并在指定值不可用时突出显示
Comparing two columns and highlighting if the specified value is not available
我有两列 A 和 B,如果 A 列具有特定值 "High",则 B 列中的相应单元格应包含日期 (dd/mm/yyyy) 值,否则如果日期值不是可用的单元格应突出显示为红色。我是这个宏的新手,我找不到它的逻辑。
抱歉,这不是评论,但我没有足够的代表。
我有点不清楚 B 列中的日期是如何填充的。我们可以将其视为给定的,还是您以某种方式分配日期?如果您能分享更多关于 sheet 的结构,可能会有帮助,也许 "dummy data"?
也就是说,这听起来像是一个简单的循环 + 条件语句的例子。我怀疑这是否适合您开箱即用,但您可以尝试在 A 列和 B 列上嵌套 For 循环 à la:
For Each cell in Range("A:A")
If cell.Value = "High" Then
If IsEmpty(Range("B"&cell.Row)) Then 'IsEmpty tests whether the cell is empty, you may need to change this if the cell has some other value in it
Range("B"&cell.Row).Interior.Color = 255 '255 corresponds to the color red
End If
End If
Next cell
不过我同意 Pᴇʜ 的观点,实际上您根本不需要 VBA。您可以使用规则的公式应用条件格式,然后对 B 列中的单元格使用这样的公式:
=IF(A2="High",IF(ISBLANK(B2),TRUE,FALSE),FALSE)
然后确保将公式应用于您关心的所有行。
我有两列 A 和 B,如果 A 列具有特定值 "High",则 B 列中的相应单元格应包含日期 (dd/mm/yyyy) 值,否则如果日期值不是可用的单元格应突出显示为红色。我是这个宏的新手,我找不到它的逻辑。
抱歉,这不是评论,但我没有足够的代表。
我有点不清楚 B 列中的日期是如何填充的。我们可以将其视为给定的,还是您以某种方式分配日期?如果您能分享更多关于 sheet 的结构,可能会有帮助,也许 "dummy data"?
也就是说,这听起来像是一个简单的循环 + 条件语句的例子。我怀疑这是否适合您开箱即用,但您可以尝试在 A 列和 B 列上嵌套 For 循环 à la:
For Each cell in Range("A:A")
If cell.Value = "High" Then
If IsEmpty(Range("B"&cell.Row)) Then 'IsEmpty tests whether the cell is empty, you may need to change this if the cell has some other value in it
Range("B"&cell.Row).Interior.Color = 255 '255 corresponds to the color red
End If
End If
Next cell
不过我同意 Pᴇʜ 的观点,实际上您根本不需要 VBA。您可以使用规则的公式应用条件格式,然后对 B 列中的单元格使用这样的公式:
=IF(A2="High",IF(ISBLANK(B2),TRUE,FALSE),FALSE)
然后确保将公式应用于您关心的所有行。