【问题标题】:Background Color based on difference with cell背景颜色基于与单元格的差异
【发布时间】:2016-07-25 14:30:20
【问题描述】:

我正在尝试创建一个 VBA 代码,它允许我根据单元格与左侧相邻单元格的差异为单元格分配背景颜色。

请允许我解释一下: http://imgur.com/UUfaFRA

当您查看上图时,您可以看到:

  • C3 是红色的,因为它的值高于 B3
  • C4 没有颜色,因为它的值等于 B4
  • C5 是绿色的,因为它的值低于 B5

我尝试将其放入 VBA 代码但没有成功:

Sheets("x").Range("C3").FormulaR1C1 =
"=IF(RC>RC[-1],Interior.ColorIndex = 3,IF(RC<RC[-1,Interior.ColorIndex= 4))"

另一个尝试是记录一个 IF 函数:

If Sheets("x").Range("C3") > Sheets("x").Range("D3") Then
Sheets("x").Range("C3").Interior.ColorIndex = 3

我希望有人能指出我正确的方向,因为我(显然)不是 VBA 大师。

【问题讨论】:

  • 为什么不使用条件格式?
  • 您编写的第二个选项应该可以工作,如果您使用“End if”完成它并且 C3 和 D3 是您需要的单元格。它有什么问题?
  • 我和斯科特在一起。无论如何,您的“IF”功能尝试应该有效:您有什么问题
  • 我会先看看条件格式,正如@ScottCraner 建议的那样。这不需要 VBA,可以更改,您仍然可以使用“撤消”。如果这不起作用,那么我会转向 VB。
  • @ScottCraner 条件是没有选项 imo...我将插入几个列,格式应该始终用于前两行。

标签: vba excel formatting conditional


【解决方案1】:
If Sheets("x").Range("C3") > Sheets("x").Range("D3") Then
Sheets("x").Range("C3").Interior.ColorIndex = 3

这段代码有效。有一些范围问题最初导致此代码失败。

感谢您的支持!

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 2017-10-21
    • 2016-01-15
    • 2017-06-26
    • 2016-10-07
    • 1970-01-01
    • 2022-12-12
    • 2015-11-29
    • 1970-01-01
    相关资源
    最近更新 更多