我正在尝试显示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
答案 0 :(得分:6)
请注意,DisplayFormat属性在用户定义的函数中不起作用。例如,在返回单元格内部颜色的工作表函数中,使用类似于以下的行:Range(n).DisplayFormat.Interior.ColorIndex。当工作表函数执行时,它返回一个#VALUE!错误。 RNN Tensorflow
改为使用:
range.Interior.Color
答案 1 :(得分:0)
这个(简化示例)似乎对我有用:
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