首页 文章

带有If语句和范围行属性的Excel公式值错误

提问于
浏览
-1

我正在制作一个带有一些UDF的电子表格 . 第一次在excel中尝试任何复杂的东西,我不确定我是否正确地这样做 . 以下公式返回#VALUE错误 .

=IF(INDEX(findRed(C3:L11), 1, 1)=3:3,3500000+35000000*0.1, "")

findRed是一个UDF,用于查看为红色背景颜色的单元格指定的范围 . 我想要做的是确定findRed函数返回的任何单元格是否在工作簿的第3行 . 最后的数学是我打算使用的数字,但我打算用findRed返回的Range制作一个相当大的嵌套IF OR AND语句,我甚至无法使第一部分工作 . 我在这做错了什么?

编辑:findRed()

Public Function findRed(myRange As Range) As Range
Dim redRange As Range, cell As Range
Application.Volatile
For Each cell In myRange
If cell.Interior.ColorIndex = 3 Then
    If redRange Is Nothing Then
        Set redRange = cell
    Else
        Set redRange = Application.Union(redRange, cell)
    End If
End If
Next cell
Set findRed = redRange
End Function

1 回答

  • 0

    您的UDF findRed 可能返回多区域范围(如果输入范围中存在多个不连续的红色单元格)或者如果没有红色单元格则返回 #VALUE 错误 .

    您的问题是如何使用 =IF(INDEX(...)) 公式的其余部分处理此返回范围

    您可以使用的替代测试是

    IFERROR(ROW(findRed(C3:L11) 3:3)>0,FALSE)
    

    如果指定范围( C3:L11 )和第3行的交集中的任何单元格为红色,则返回 TRUE ,否则返回 FALSE .

    然后,您可以将其嵌入到 IF AND OR 公式中

相关问题