更改呼叫单元内部颜色

Rya*_*yan 6 excel vba excel-vba

我正在尝试在Excel中创建一个非常简单的VBA函数,用于计算特定值(基于另一个单元格内容)并设置调用单元格值和内部颜色.我对值计算很好,但它是内部着色让我循环.

我可以执行以下操作来设置文本和字体颜色:

Function Test()
    Application.Caller.Font.ColorIndex = 3
    Test = "Hello"
End Function
Run Code Online (Sandbox Code Playgroud)

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

Function Test()
    Application.Caller.Interior.ColorIndex = 3
    Test = "Hello"
End Function
Run Code Online (Sandbox Code Playgroud)

无论如何,我已经看到一些其他SO帖子谈论类似的变化(例如这里),但他们的解决方案似乎并不适合我.我宁愿不使用条件格式化这样做,因为我想要一些我可以轻松地在不同的Excel文件之间传输的东西.

Tim*_*ams 10

这两个都在常规模块中:

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
Run Code Online (Sandbox Code Playgroud)

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