【问题标题】:VBA Highlight Cells multiple criteriaVBA突出显示单元格多个条件
【发布时间】:2018-08-10 20:38:13
【问题描述】:

我试图在电子表格中创建一个代码,当满足单元格 E13="Country" 和 F13="State" 上的 2 个不同条件时,将突出显示单独的单元格范围 (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 的代码之后进行。

谢谢!

【问题讨论】:

    标签: excel vba highlight


    【解决方案1】:

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

    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
    

    【讨论】:

    • 嗨布莱克!谢谢,它工作正常,但这可能有点棘手,谢谢我解释或意识到它会是,代码工作得太完美了哈哈,如果我将 E13 或 F13 更改为其他选项怎么办?目前它所做的是突出显示第二个范围但不清除第一个范围,这很有意义,我宁愿在选择新选项之前不要求用户清除所有内容,有什么解决办法吗?
    • 任何时候你需要摆脱一个范围的填充,你可以使用这个代码: Range("A28:D28").Interior.Pattern = xlNone 只需将该代码中的范围替换为你不需要填充的范围;)如果你有很多你正在处理的单元格,你甚至可以在代码的开头指定整个范围并使用这行代码来摆脱填充所有单元格,然后运行代码(这就是我要做的)。我编辑了我的答案以反映这个示例
    • 如果我完全误解了你的意思,请告诉我,哈哈
    • 嗨布莱克,抱歉延迟,所以当 E13 和 F13 满足某些条件时,代码的第一部分将突出显示 A28:D28,这很好,现在可以说我更改了值E13 或 F13 中的任何一个,这将使另一组单元格(比如说 A30:D30)突出显示,因为标准不同,而且效果也很好,问题是,当更改 E13 或 F13 的值时,原来的突出显示的范围将保持黄色,有什么办法可以改变吗?
    • 对不起,我之前没有澄清,我没想到会发生这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2019-01-21
    相关资源
    最近更新 更多