根据多个单元格条目突出显示一行中所有单元格的颜色

时间:2018-10-18 20:47:53

标签: excel vba

致歉的标题致歉。我正在尝试的并不是太困难(我认为)。我正在尝试根据输入到这些行的特定单元格中的值来填充电子表格的整个行。例如:如果该行的K值等于2,我想将该行填写为蓝色。使用下面的代码,我已经能够做到这一点。

<p class="toTruncate">Hello John Doe</p>

我想更进一步,并在输入“是”作为L值时将该行填写为绿色。到目前为止,我所做的所有尝试都在返回错误消息或被接受,但在L单元格中输入“是”时什么也不返回。

1 个答案:

答案 0 :(得分:0)

每张纸上只能有一个Worksheet_Change事件,因此您需要将所有内容打包到一个子文件夹中。

  1. 如果有多个单元格触发了宏Exit Sub。多个单元触发宏的示例是清除大于一个单元的范围的内容。
  2. 扩展您的Intersect以允许列K:L
  3. 通过Select Case来确定哪个列触发了宏,其中Column K = Column 7Column L = Column 8
  4. 请勿测试是否缺少2(就像您当前的代码一样)。相反,只需查看该值是否为2。这意味着您不必Exit Sub执行中间过程。
  5. 恭喜您拥有Option Explicit :)

如果您的条件设置为可能覆盖其他条件,则毫无价值。
 当K = 2L = Yes在同一行时会发生什么?以最近更改的那个单元为准。如果您未对此进行任何考虑,则需要将优先级分配给您的条件之一。


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("K:L")) Is Nothing Then
    Select Case Target.Column
        Case 7
            If Target = 2 Then Target.EntireRow.Interior.Color = ####

        Case 8
            If Target = "Yes" Then Target.EntireRow.Interior.Color = ####
    End Select
End If

End Sub