【问题标题】:Excel Formula Value Error with If Statement and Range Row Property带有 If 语句和 Range Row 属性的 Excel 公式值错误
【发布时间】:2014-07-13 09:19:56
【问题描述】:

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

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

findRed 是一个 UDF,用于查看为具有红色背景颜色的单元格指定的范围。我想要做的是确定 findRed 函数返回的任何单元格是否在工作簿的第三行。最后的数学是我打算使用的数字,但我打算用 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

【问题讨论】:

  • 发布 findRed() 代码。
  • 发布 findRed() 函数

标签: excel if-statement excel-formula vba


【解决方案1】:

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

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

您可以使用的替代测试是

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

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

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

【讨论】:

  • @stev0 我看到你接受然后不接受这个(没关系,你可以接受或不接受你认为合适的)这个答案还有其他问题需要帮助吗?
猜你喜欢
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多