【问题标题】:Excel 2013 VBA Macro Needed for Highlighting with Multiple Conditionals使用多个条件突出显示所需的 Excel 2013 VBA 宏
【发布时间】:2015-03-11 13:27:25
【问题描述】:

我需要帮助编写一个可以做很多事情的 Excel 宏。我的贡献是将数据转换为这种格式的宏,但我坚持突出显示,甚至不知道如何进行。对不起,这是超长的,提前感谢一大堆! :D

我遇到的问题是,如果 A 列中有重复的名称,我需要 D 列中所有总数的总和,以便最终用户用于查找突出显示颜色。

唯一获得突出显示的公司将在 E 列中显示“#N/A”。如果有多家公司,但在 E 列中没有显示“#N/A”,那么只有显示“#”的公司N/A" 将包含在突出显示/添加总计中……

  1. 如果 A 列有多个相同的公司名称,并且同一公司的所有 D 列中的总数加起来大于 0,并且 C 列中所有的订单号同一家公司以“5”开头(我一直在使用 =LEFT($C1,1)+0=5),并且 E 列 =“#N/A”,然后以黄色突出显示 A:E。

  2. 如果 A 列有多个相同的公司名称,并且 D 列中所有同一公司的总数加起来大于 0,但并非 C 列中的所有订单号都以“5” AND 列 E = “#N/A”,那么带有“5”的订单号的 A:E 单元格为蓝色(颜色 15773696),并且订单号的 A:E 单元格不是以“5”开头的都是红色的。

  3. 如果 A 列有多个相同的公司名称,并且 D 列中所有同一公司的总数加起来为 0,并且 E 列 =“#N/A”,则突出显示单元格 A:E 为红色。

  4. 如果 A 列有多个相同的公司名称,并且 D 列中所有同一公司的总数加起来

  5. 如果 A 列只有一个公司名称,并且 C 列中的订单号以“5”开头,并且 D 列中的总数 > 0,并且 E 列 =“#N/A”,然后以蓝色突出显示公司名称的单元格 A:E(颜色 15773696)。

  6. 如果 A 列只有一个公司名称,并且 D 列中的总数

  7. 如果 A 列只有一个公司名称,并且 C 列中的订单号不以“5”开头,并且 D 列中的总数 >= 0,则突出显示单元格 A:E公司名称为红色。

  8. 如果该行是蓝色的,请插入文本“Booking DER?”进入 F 列。

非常感谢您的帮助! :) 我会发布一张示例图片,但它不会让我...

【问题讨论】:

    标签: excel conditional-formatting vba


    【解决方案1】:

    您有两种选择,一种是使用条件格式,它更容易,但在我看来需要更多时间

    您还可以使用私有方法在单元格值更改时更改单元格格式,为此您需要在 VBA 的工作表内创建一个代码,在列表中选择要使用该代码的工作表左上角选择“查看代码”,这是您必须编写代码的地方

    但要小心,因为您正在处理诸如“#N/A”之类的错误,因为如果您执行诸如

    之类的操作

    If Range("C2").value = "#N/A" then ...

    它不起作用,因为“#N/A”不是单元格值它是一个错误指示器,所以你必须使用这样的东西:

    If worksheetfunciton.IfError(Range("C2"),"Error") = "Error" then ...

    在此示例中,如果确定范围内的单元格的值已更改,则 coe 将显示一条消息,告诉您此单元格已更改,您所要做的就是根据您的需要更改范围并更改行:@ 987654323@ 适合您的条件,这应该可以,一种突出显示单元格的方法可以是cells().Interior.ColorIndex = "color number"

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim KeyCells As Range
    
        ' The variable KeyCells contains the cells that will
        ' cause an alert when they are changed.
        Set KeyCells = Range("A1:C10")
    
        If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then
    
            ' Display a message when one of the designated cells has been 
            ' changed.
            ' Place your code here.
            MsgBox "Cell " & Target.Address & " has changed."
    
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多