VBA Highlight Cells多个条件

时间:2018-08-10 20:38:14

标签: excel vba highlight

我试图在电子表格中创建一个代码,当满足单元格E13 =“ Country”和F13 =“ State”上的两个不同条件时,该代码将突出显示单元格的单独范围(A28:D28),F13具有验证依赖性E13上的值,该值也有数据验证。到目前为止,我已经有了这段代码,我认为这根本没有任何意义。

Set A = Range("E13")
    If Not Intersect(Target, A) Is Nothing Then
    If A = "Country" Then
        For Each A In Range("E13")
        If A.Offset(0, 1) = "State" Then
        A.Interior.ColorIndex = 5
        End If
    End If
End If

此代码将用于跨多个部分的多种组合,以突出显示多个范围,但是我想我可以设法复制粘贴和更改范围,很抱歉,我的VBA技能不是那么好。 所有这一切都发生在一个代码上,当在一组单独的范围上满足某些条件时,该代码将返回MsgBoxs。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是完成工作的最基本的代码行:

Sub temp()

    If Range("E13").Value = "Country" And Range("F13").Value = "State" Then Range("A28:D28").Interior.ColorIndex = 5

End Sub

在这里,如果您需要运行E13更改的代码:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E13")) Is Nothing Then
    If Range("E13").Value = "Country" And Range("F13").Value = "State" Then Range("A28:D28").Interior.ColorIndex = 5
    'Copy and past the line above with the other criteria you may need
End If

End Sub

如何在运行填充颜色之前清除整个颜色范围,并检查E13或F13是否更改:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E13:F13")) Is Nothing Then
    Range("A28:D38").Interior.Pattern = xlNone 'replace A28:D38 with your range 
    If Range("E13").Value = "Country" And Range("F13").Value = "State" Then Range("A28:D28").Interior.ColorIndex = 5
    'Copy and past the line above with the other criteria you may need
End If

End Sub