【发布时间】:2019-11-20 11:23:53
【问题描述】:
我有一个IF(Test1>0, Test1, NA()) 的工作表公式,旨在在不满足条件时在工作表中放置一个“受控”#N/A。同样,我在同一张表的其他地方使用IFERROR(Test2,NA())。
由于 Testn 的公式很长,我想将它们放入 UDF 但找不到生成“受控”#N/A 错误的方法(一个不是绿色- 在工作表上标记为错误)。
到目前为止,我已经做到了:
Function GTZero(sngInput As Single) As Variant
If sngInput > 0 Then GTZero = sngInput Else GTZero = CVErr(xlErrNA)
End Function
然后在工作表中将其称为=GTZero(Test1)。答案看起来正确,但 Excel 将其标记为真正的错误。我不想只使用“#N/A”文本,因为我需要在图表中使用结果并希望跳过 #N/As
【问题讨论】:
-
据我所知,你不能。如果您打开了错误检查选项,任何返回
#N/A而非NA()的函数都会被标记。 -
你为什么不用
=IFERROR(GTZero(Test1),NA())?如果您要做的只是计算一次Test1,这应该适合您。 -
不返回
#N/A,而是返回一个“BLANK CELL”,如HERE 所示。当我说“BLANK CELL”时,我并不是指"",因为它会被绘制在图表中。也可以右击Chart | Select Data | Hidden and Empty Cells | Show Empty Cell as "Connect data points with line"This 再次在折线图上进行测试。 -
顺便说一句,我指的是上面链接中的
Przemyslaw Remin答案 -
我最初的假设是“Test1”是一个命名范围。但是,“由于 Testn 的公式很长”这句话让我有些怀疑。调用函数时,
Test1是如何真正表示的?因为否则你的代码看起来很好。
标签: excel vba user-defined-functions