所以,我有一系列的单元格,从M到AL,它们显示值" True"或"错误"对于某些数据。我需要一个逐行遍历该范围的代码,当找到一个值" False"将值1放在AN列中,将颜色放在该行中。到目前为止,这是我的代码:
Set r = Sheet7.Range("W:AL")
For i = 5 To RowCount
With r.Cells(i)
If .Value = "False" Then
.EntireRow.Interior.Color = 15773610
Cells(i, "AN").Value = 1
End If
End With
Next i
但它不起作用。我可能错过了一些东西,但我无法弄清楚它是什么。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
我的例子是数据量较少,只需根据需要调整公式即可。 此外,请注意我的Excel是西班牙语,但我会翻译公式。
对于这个答案,我们将使用Array Formulas。
我的数据只是A1:C17
。有些单元格包含数字而其他单元格包含False值(西班牙语中的False为False,请检查图像):
好的,如果行中的任何单元格为False,则第一步将在AN列中使用数组公式显示1值,如果不是则为空。在我的例子中,我将该公式放在D列中。我使用了=IF(A1:C1=FALSE;1;"")
。拖动它。
非常重要:键入此公式时,请勿按Enter键。您必须按 CTRL + SHIFT + ENTER ,才能使其成为数组公式。如果你不这样做,它将失败。应用公式后,我在D列中得到了这个结果:
请注意,只有False值的行在D列中提高1。其余单元格为空白。
第二步,条件格式化。只需创建一个规则,如果D cell = 1则表示背景颜色为红色。请记住使用相对引用创建规则(仅阻塞列而不是行)以使其工作。我在规则中的公式是=IF($D1=1;TRUE;FALSE)
,规则是这样的:
最终结果是这样的。正如您所看到的,如果单元格D中的值为1,它会为所有行着色。如果不是,则它不执行任何操作:
希望这会有所帮助。根据您的需求进行调整。
答案 1 :(得分:0)
这个解决方案对我有用,所以我希望它对其他人有帮助。
Set r = Sheet7.Range("M:AL")
For i = 5 To RowCount
With r.Cells(i)
If .Value = "False" Then
.EntireRow.Interior.Color = 15773610
End If
End With
Next i
For i = 5 To RowCount
If Sheet7.Cells(i, "AL").Interior.Color = 15773610 Then
Cells(i, "AN").Value = 1
End If
Next I