我有一个用于检查评论是否存在的UDF。我在CF中使用它,因为我想为单元格着色,如果1.单元格不是空白,并且2.没有评论。这对2007年和2010年来说工作得很好,但现在我已经有了2016年,而且Excel对我来说有点奇怪。使用Office 2016/Office 365的udf问题进行条件格式化
UDF:
Function HasCmt(Rng As Range)
Application.Volatile
HasCmt = IIf(Not Rng.Comment Is Nothing, True, False)
End Function
CF: = AND(NOT(ISBLANK(B6)),HasCmt(B6)= FALSE)
现在,当我符合标准,格式化被施加并且然后再消失。如果我禁用自动计算,它会正常运行,直到我重新计算。保存文档时也会出错。 '计算不完整...'。
有没有人知道我可以适用于我的许多工作簿我有使用此CF的修复? 2016年Excel产品有所改变吗?
任何帮助将不胜感激。
由于
该application.volatile必须很难打到工作簿。此外,它似乎并不符合您的两个标准,因此您必须在其上使用ISBLANK。除了2016年问题之外,您是否考虑过其他更有效的方法?严格来说,当收到评论时,。volatile并没有改变单元格的状态。只有在工作簿中的某些内容发生变化时才会重新评估所有单元格。 – Jeeped
谢谢Jeeped。我想不出一种替代方式来实现这一点,尤其是因为从07年和2010年它只是'工作' –
我从UDF中删除application.volatile,并将逻辑改为'If Not IsEmpty(rng)Then HasCmt = CBool (不是rng.Comment是Nothing)'。计算设置为自动时,UDF按预期在CF规则中执行。这是在Excel 2013中。我稍后会尝试检查excel 2016。 – Jeeped