VBA代码返回#value错误
我试图在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
是的,因为:
请注意,DisplayFormat属性在用户定义的函数中不起作用 。 例如,在返回单元格的内部颜色的工作表函数中,可以使用类似于以下内容的直线:Range(n).DisplayFormat.Interior.ColorIndex。 当工作表函数执行时,它会返回一个#VALUE! 错误。 Ref 。
而是使用:
range.Interior.Color
这个(简化的例子)似乎适用于我:
Public Function CheckColour(src As Range) Application.Volatile CheckColour = src.Parent.Evaluate("GetColor(" & src.Address(False, False) & ")") End Function Public Function GetColor(src As Range) GetColor = src.DisplayFormat.Interior.Color End Function