VBA代码返回#value错误

hk9*_*6fh 1 excel vba excel-vba

我正在尝试显示excel中条件格式的颜色.在excel中我只使用= CheckColour(B5),当我点击返回时它可以工作.但是,当我要求工作表计算时,函数给出#VALUE!而且我不知道我哪里出错了.任何帮助都表示赞赏,因为我是VBA的初学者.谢谢

    Function CheckColour(range)
        If range.DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
        CheckColour = "Red"
        ElseIf range.DisplayFormat.Interior.Color = RGB(0, 130, 59) Then
        CheckColour = "Green"
        Else
        CheckColour = "Amber"
        End If
    End Function
Run Code Online (Sandbox Code Playgroud)

Ale*_* K. 6

是的,因为:

请注意,DisplayFormat属性在用户定义的函数中不起作用.例如,在返回单元格内部颜色的工作表函数中,使用类似于以下的行:Range(n).DisplayFormat.Interior.ColorIndex.当工作表函数执行时,它返回一个#VALUE!错误.参考.

而是使用:

range.Interior.Color 
Run Code Online (Sandbox Code Playgroud)