如果某个范围内的值是使用VBA的特定单词,如何将值放在最后一行?

时间:2018-04-18 12:10:33

标签: excel vba excel-vba

所以,我有一系列的单元格,从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

但它不起作用。我可能错过了一些东西,但我无法弄清楚它是什么。任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

我的例子是数据量较少,只需根据需要调整公式即可。 此外,请注意我的Excel是西班牙语,但我会翻译公式。

对于这个答案,我们将使用Array Formulas

我的数据只是A1:C17。有些单元格包含数字而其他单元格包含False值(西班牙语中的False为False,请检查图像):

enter image description here

好的,如果行中的任何单元格为False,则第一步将在AN列中使用数组公式显示1值,如果不是则为空。在我的例子中,我将该公式放在D列中。我使用了=IF(A1:C1=FALSE;1;"")。拖动它。

非常重要:键入此公式时,请勿按Enter键。您必须按 CTRL + SHIFT + ENTER ,才能使其成为数组公式。如果你不这样做,它将失败。应用公式后,我在D列中得到了这个结果:

enter image description here

请注意,只有False值的行在D列中提高1。其余单元格为空白。

第二步,条件格式化。只需创建一个规则,如果D cell = 1则表示背景颜色为红色。请记住使用相对引用创建规则(仅阻塞列而不是行)以使其工作。我在规则中的公式是=IF($D1=1;TRUE;FALSE),规则是这样的:

enter image description here

最终结果是这样的。正如您所看到的,如果单元格D中的值为1,它会为所有行着色。如果不是,则它不执行任何操作:

enter image description here

希望这会有所帮助。根据您的需求进行调整。

答案 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