我想编写一个UDF,该UDF返回所写入单元格的背景色的RGB值。如何在不指定单元格的情况下刷新写入UDF的单元格?
我希望我的函数能像=COLUMN()
工作表函数那样工作。
供应ActiveCell
无效...因为重新计算工作表时,活动单元会进行其他操作。
Function BackgroundAsRGB(Optional rng As Range)
On Error GoTo Hell
If rng Is Nothing Then
Set rng = ActiveCell 'It isn't active cell...
End If
BackgroundAsRGB = ColorLongToRGB(rng.Resize(1, 1).Interior.Color)
Hell:
End Function
答案 0 :(得分:4)
尝试:
Function BackgroundAsRGB(Optional rng As Range)
Dim MyTarget As Range
If rng Is Nothing Then
Set MyTarget = Application.Caller
Else
Set MyTarget = rng
End If
BackgroundAsRGB = ColorLongToRGB(MyTarget.Resize(1, 1).Interior.Color)
End Function
Application.Caller
返回正在调用UDF的对象,因此它返回执行此UDF的范围。更多信息:
还要检查: