如何根据其他单元格颜色设置单元格颜色

时间:2020-06-23 08:54:53

标签: excel

对不起,我是MS Excel的新手。

如果单元格G1为绿色,我想将单元格A1的颜色设置为红色

同时

如果单元格F1不为空,我想将单元格A1的颜色设置为黄色

如果两个规则为真,则优先级应为第二个。如果没有正确的规则,则对单元格不进行任何操作。

该怎么做?

2 个答案:

答案 0 :(得分:1)

您熟悉VBA吗?您可以使用下面的代码。如果您不熟悉VBA,请使用条件格式设置选项。

条件格式:

  1. 标记单元格A1。
  2. 转到条件格式->新规则
  3. 使用公式确定要格式化的单元格
  4. 插入您的公式(例如“ = F1 =”“)(这将检查f F1没有值)
  5. 在下面选择所需的格式(例如颜色等)
  6. 点击“确定”确认选择

VBA: 您可以使用

激活单元格
 Range("A1")

每个单元格都有几个参数,例如颜色或值,您可以阅读和编辑。

 Range("A1").Value 'Value
 Range("A1").Interior.ColorIndex 'Color of cells

满足您要求的代码如下

 If Range("G1").Interior.ColorIndex = 4 then  '4 = color code for green
    Range("A1").Interior.ColorIndex = 3       '3 = color code for red
 End If

 If (Range("F1").Value = 0 Then
    Range("A1").Interior.Colorindex = 6  '6 = color code for yellow
 End If

您可以在此处找到颜色代码:Microsoft Docs Color Codes

答案 1 :(得分:1)

您将需要使用VBA代码来触发该第一条规则,因为条件格式不会影响其他单元格的颜色。 新手指南:

  1. 键入Alt + F11以打开VBA代码编辑器窗口(对于我认识的新手来说,这很恐怖!)
  2. 在左侧的窗口中,您需要选择工作表-它将在标题为“ Project”的窗口中,您可能必须先展开“ VBAProject(filename)”,然后再展开“ Microsoft Excel Objects”。查找工作表名称。
  3. 现在顶部应该有2个下拉框,分别是“一般”和“声明”。您需要将“常规”更改为“工作表”,将“声明”更改为“ SelectionChange”(可能会自动执行此操作),然后会出现一些代码-两行显示了“ sub”的开始和结束。每次在工作表(而不是其他任何工作表)中选择一个新的单元格时,粘贴在这些行之间的任何代码都将运行。
  4. 在这些行之间粘贴以下代码:
If ThisWorksheet.Range("F1").Value <> "" Then
    ThisWorksheet.Range("A1").Interior.Color = vbYellow
ElseIf ThisWorksheet.Range("G1").Interior.Colour = vbGreen Then
    ThisWorksheet.Range("A1").Interior.Colour = vbRed
End If

  1. 关闭代码编辑器并进行一些测试!

请记住,它正在检查G1是否为vbGreen-Excel非常严格,并且不会仅在任何绿色阴影上触发。测试一下,看看是否有效。