0
Function HasStrike(Rng as Range) As Boolean
HasStrike = Rng.Font.Strikethrough
End Function

我正在使用自定义函数来查看列是否有删除线。如果该列有删除线,它返回一个布尔值,我删除该行。但是,我收到 #VALUE 错误。我正在检查的列中只有“MASS”这个词。不知道发生了什么。

用户截图

4

1 回答 1

0

如果单元格内容具有混合格式,您的函数将返回#VALUE:有些文本被删除,有些则没有。

选择“问题”输入单元格之一,然后转到“格式化单元格”>>字体选项卡。是否选中了“删除线”或如下所示?这将表明混合格式。

在此处输入图像描述

试试这个也许:

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
于 2015-02-27T00:14:52.460 回答