【问题标题】:Copy automatically only the color from one cell to another- EXCEL VBA仅自动将颜色从一个单元格复制到另一个单元格-EXCEL VBA
【发布时间】:2014-04-09 08:21:31
【问题描述】:

我有单元格017,由于公式和条件格式,该单元格的值和颜色不断变化。

单元格O16 也会因公式而不断变化,但公式及其值与单元格017 不同。

我想要的是一旦单元格017 的值发生变化,单元格O16 会自动包含与单元格O17 相同的颜色。

VBA 中应该有解决方案。我希望你的帮助。

编辑:

用户 simoco 提出了适用于 Excel 2010 及更高版本的解决方案:

Private Sub Worksheet_Calculate()
    Range("O16").Interior.Color = Range("O17").DisplayFormat.Interior.Color
End Sub

不幸的是,我使用 Excel 2007,是否存在与 2007 年的代码等效的代码?。

【问题讨论】:

    标签: vba excel colors


    【解决方案1】:

    仅适用于 Excel 2010 及更高版本

    如果您的单元格O17 只能通过公式更改,请使用以下代码(此代码应在Sheet 模块中使用):

    Private Sub Worksheet_Calculate()
        Range("O16").Interior.Color = Range("O17").DisplayFormat.Interior.Color
    End Sub
    

    否则,也用相同的代码添加Worksheet_Change事件。

    【讨论】:

    • 我已经尝试过您的代码,但有一条错误消息,这应该是我的问题的原因。我在西班牙语中使用 Excel 2007,消息说:“错误“4838”在运行时产生。对象不接受此属性或方法”。
    • 正如 Tim 所说,DisplayFormat 仅在 Excel 2010 中引入
    • 我正在尝试找出它,但不确定.. 为什么不为 O16 添加与 O17 相同的 CF 规则?
    • O16 的值不同。因此,CF 规则的颜色会有所不同。