更改调用单元格内部颜色

我试图在Excel中创build一个非常简单的VBA函数来计算特定的值(基于另一个单元格内容)并设置调用单元格的值和内部颜色。 我很喜欢这个价值计算,但它是内部着色,把我扔了一个循环。

我可以做以下设置文本和字体颜色:

Function Test() Application.Caller.Font.ColorIndex = 3 Test = "Hello" End Function 

但我宁愿设置细胞内部的颜色。 我已经尝试了下面代码的几个不同的迭代,但是这总是给我一个调用单元格的值错误。

 Function Test() Application.Caller.Interior.ColorIndex = 3 Test = "Hello" End Function 

无论如何,我已经看到一些其他的SOpost,谈论类似的变化(例如在这里 ),但他们的解决scheme似乎并没有为我工作。 我宁愿不使用条件格式,因为我想要的东西,我可以轻松地在不同的Excel文件之间传输。

有了这两个在一个常规的模块:

 Sub ChangeIt(c1 As Range) c1.Interior.ColorIndex = 3 End Sub Function Test() With Application.Caller .Parent.Evaluate "Changeit(" & .Address(False, False) & ")" End With Test = "Hello" End Function 

请参阅: 在Excel中使用UDF来更新工作表