【问题标题】:Change Calling Cell Interior Color更改呼叫单元内部颜色
【发布时间】:2018-03-23 11:59:48
【问题描述】:

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

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

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

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

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

无论如何,我已经看到其他一些 SO 帖子讨论了类似的变化(例如 here),但他们的解决方案似乎对我不起作用。我宁愿不使用条件格式来执行此操作,因为我想要可以在不同 Excel 文件之间轻松传输的内容。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    将这两个都放在常规模块中:

    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
    

    见:Using a UDF in Excel to update the worksheet

    【讨论】:

    • 这就是诀窍!谢谢@提姆。考虑到更改字体颜色是多么容易,这比我预期的要复杂......至少它有效。
    • 由于某种原因,字体颜色是直接从函数中起作用的一件事:几乎所有其他事情都需要解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2018-03-27
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多