Excel 根据一个或多个高亮显示的单元格判断为true或false

Excel 根据一个或多个高亮显示的单元格判断为true或false,excel,excel-formula,user-defined-function,Excel,Excel Formula,User Defined Function,我有一张excel表格,看起来像 我想要像这样的输出 如果突出显示三列中的任何一个单元格,则该行的输出应为1else0。在链接的输出图像中,输出列名为count 例如:单元格B2和C2在第一行高亮显示,因此输出单元格D2应为1A4、B4和C4没有任何突出显示的单元格,因此输出D4应为0 有人能帮我做一个功能吗 试试这个 选项显式 功能指示灯(rng作为范围)的长度为 调光范围 对于rng中的每个r IsHighlighted=IsHighlighted或CBool(r.Interior.Patt

我有一张excel表格,看起来像

我想要像这样的输出

如果突出显示三列中的任何一个单元格,则该行的输出应为
1
else
0
。在链接的输出图像中,输出列名为
count

例如:单元格
B2
C2
在第一行高亮显示,因此输出单元格
D2
应为
1
A4
B4
C4
没有任何突出显示的单元格,因此输出D4应为
0

有人能帮我做一个功能吗

试试这个

选项显式
功能指示灯(rng作为范围)的长度为
调光范围
对于rng中的每个r
IsHighlighted=IsHighlighted或CBool(r.Interior.Pattern xlNone)
下一个r
IsHighlighted=Abs(IsHighlighted)
端函数

我没有Excel可供测试,但一种可能的解决方法是创建三个值为1或0的新列,这些列将有条件地格式化(突出显示)原始三列。使用这三个新的二进制列,在
count
中更容易获得所需的值。如果这不可行,您可能需要对宏执行以下操作:
Option Explicit

Function IsHighlighted(rng As Range) As Long
    Dim r As Range
    For Each r In rng
        IsHighlighted = IsHighlighted Or CBool(r.Interior.Pattern <> xlNone)
    Next r
    IsHighlighted = Abs(IsHighlighted)
End Function