Excel 2013 VBA 需要用多个条件突出显示的宏
Excel 2013 VBA Macro Needed for Highlighting with Multiple Conditionals
我需要帮助编写一个 Excel 宏,它可以做很多事情。我的贡献是将数据转换成这种格式的宏,但我一直坚持突出显示,甚至不知道如何进行。抱歉,这太长了,提前致谢! :D
我遇到的问题是,如果 A 列中有重复的名称,我需要为该最终用户使用 D 列中所有总计的总和来查找突出显示颜色。
只有在E栏高亮显示“#N/A”,如果有多个公司但没有在E栏显示“#N/A”,则只有那些说“#N/A”的将包含在总数的 highlighting/adding 中……
如果A列有多个相同的公司名称,并且D列所有同一公司的总数加起来大于0,并且C列的订单号对于所有以“5”开头的公司(我一直在使用 =LEFT($C1,1)+0=5),AND 列 E =“#N/A”,然后突出显示 A:E 黄色。
如果A列有多个相同的公司名称,并且D列中所有同一公司的总数加起来大于0,但并非列中的所有订单号C 以“5”开头,AND 列 E =“#N/A”,然后订单号为“5”的 A:E 的单元格为蓝色(颜色 15773696),以及A:E 不以“5”开头的订单号为红色。
如果A列有多个相同公司名称,且D列所有同一公司的总数加起来为0,AND列E = "#N/A",然后用红色突出显示单元格 A:E。
如果 A 列有多个相同的公司名称,并且 D 列中所有同一公司的总数加起来 < 0,并且 E 列 = "#N/A", THEN 用橙色突出显示所有公司行的单元格 A:E(颜色 49407)。
如果 A 列只有一个公司名称,并且 C 列中的订单号以“5”开头,并且 D 列中的总数 > 0,并且 E 列 =“#N/A",然后用蓝色突出显示公司名称的单元格 A:E(颜色 15773696)。
如果 A 列只有一个公司名称,并且 D 列中的总数小于 0,并且 E 列 =“#N/A”,则突出显示单元格 A:E公司名称为橙色(颜色 49407)。
如果 A 列只有一个公司名称,并且 C 列中的订单号不以“5”开头,并且 D 列中的总数 >= 0,则突出显示单元格 A:E 为红色的公司名称。
如果该行为蓝色,则将文本 "Booking DER?" 插入 F 列。
非常感谢您的帮助! :) 我会 post 一张示例图片,但它不会让我...
你有两种选择,一种是使用条件格式,它更容易,但我认为需要更多时间
您还可以使用私有方法在值更改时更改单元格格式,为此您需要在 VBA、select 您想要的工作表上的工作表内创建代码使用左上角列表中的代码 select "View Code" 那是你必须编写代码的地方
但是要小心,因为您正在处理诸如“#N/A”之类的错误,因为如果您执行诸如
之类的事情
If Range("C2").value = "#N/A" then
...
它不会工作,因为“#N/A”不是单元格值它是一个错误指示器,所以你必须使用这样的东西:
If worksheetfunciton.IfError(Range("C2"),"Error") = "Error" then
...
在此示例中,如果确定范围内的单元格的值已更改,则 coe 将显示一条消息,告诉您此单元格已更改,您所要做的就是根据需要更改范围并更改行: MsgBox "Cell " & Target.Address & " has changed."
根据您的条件,这应该可行,一种突出显示单元格的方法可以是 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
我需要帮助编写一个 Excel 宏,它可以做很多事情。我的贡献是将数据转换成这种格式的宏,但我一直坚持突出显示,甚至不知道如何进行。抱歉,这太长了,提前致谢! :D
我遇到的问题是,如果 A 列中有重复的名称,我需要为该最终用户使用 D 列中所有总计的总和来查找突出显示颜色。
只有在E栏高亮显示“#N/A”,如果有多个公司但没有在E栏显示“#N/A”,则只有那些说“#N/A”的将包含在总数的 highlighting/adding 中……
如果A列有多个相同的公司名称,并且D列所有同一公司的总数加起来大于0,并且C列的订单号对于所有以“5”开头的公司(我一直在使用 =LEFT($C1,1)+0=5),AND 列 E =“#N/A”,然后突出显示 A:E 黄色。
如果A列有多个相同的公司名称,并且D列中所有同一公司的总数加起来大于0,但并非列中的所有订单号C 以“5”开头,AND 列 E =“#N/A”,然后订单号为“5”的 A:E 的单元格为蓝色(颜色 15773696),以及A:E 不以“5”开头的订单号为红色。
如果A列有多个相同公司名称,且D列所有同一公司的总数加起来为0,AND列E = "#N/A",然后用红色突出显示单元格 A:E。
如果 A 列有多个相同的公司名称,并且 D 列中所有同一公司的总数加起来 < 0,并且 E 列 = "#N/A", THEN 用橙色突出显示所有公司行的单元格 A:E(颜色 49407)。
如果 A 列只有一个公司名称,并且 C 列中的订单号以“5”开头,并且 D 列中的总数 > 0,并且 E 列 =“#N/A",然后用蓝色突出显示公司名称的单元格 A:E(颜色 15773696)。
如果 A 列只有一个公司名称,并且 D 列中的总数小于 0,并且 E 列 =“#N/A”,则突出显示单元格 A:E公司名称为橙色(颜色 49407)。
如果 A 列只有一个公司名称,并且 C 列中的订单号不以“5”开头,并且 D 列中的总数 >= 0,则突出显示单元格 A:E 为红色的公司名称。
如果该行为蓝色,则将文本 "Booking DER?" 插入 F 列。
非常感谢您的帮助! :) 我会 post 一张示例图片,但它不会让我...
你有两种选择,一种是使用条件格式,它更容易,但我认为需要更多时间
您还可以使用私有方法在值更改时更改单元格格式,为此您需要在 VBA、select 您想要的工作表上的工作表内创建代码使用左上角列表中的代码 select "View Code" 那是你必须编写代码的地方
但是要小心,因为您正在处理诸如“#N/A”之类的错误,因为如果您执行诸如
之类的事情If Range("C2").value = "#N/A" then
...
它不会工作,因为“#N/A”不是单元格值它是一个错误指示器,所以你必须使用这样的东西:
If worksheetfunciton.IfError(Range("C2"),"Error") = "Error" then
...
在此示例中,如果确定范围内的单元格的值已更改,则 coe 将显示一条消息,告诉您此单元格已更改,您所要做的就是根据需要更改范围并更改行: MsgBox "Cell " & Target.Address & " has changed."
根据您的条件,这应该可行,一种突出显示单元格的方法可以是 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