Function HasStrike(Rng as Range) As Boolean
HasStrike = Rng.Font.Strikethrough
End Function
我正在使用自定义函数来查看列是否有删除线。如果列有删除线,它返回一个布尔值,我删除该行。但是,我收到了#VALUE错误。我正在检查的列中只有“MASS”字样。不知道发生了什么。
答案 0 :(得分:0)
如果单元格内容具有混合格式,则您的函数将返回#VALUE:某些文本被删除而某些文本未被删除。
选择一个“问题”输入单元格并转到“格式化单元格”>>字体选项卡。 “Strikethrough”是否已经过检查或者看起来像下面的样子?这表示混合格式。
尝试这个:
Function HasStrike(Rng As Range) As Boolean
Dim v
Application.Volatile '<< EDIT: added this
On Error Resume Next
v = Rng.Font.Strikethrough
On Error GoTo 0
HasStrike = v Or IsNull(v)
End Function