阅读Excel Cell&的颜色。使用相同的颜色更改该工作表的选项卡颜色

时间:2016-01-22 10:09:23

标签: excel colors tabs cell

我想帮助一个代码来读取Excel单元格的颜色(其颜色在条件语句中更改:)和&根据该单元格颜色更改该工作表的选项卡颜色。任何帮助/建议表示赞赏。谢谢。 这是单元格中使用的条件语句:

 =WENN(ODER(B2="open";B71="open";B82="open";B107="open");"open";"ok")

这是我正在使用的代码(我刚刚在线获得了一些代码):

Sub GetRGBColor_Fill()
'PURPOSE: Change the Tab Color based on the ActiveCell's Fill Color
    If ActiveCell.Interior.Color = RGB(256, 0, 0) Then
        ActiveSheet.Tab.Color = 256
    ElseIf ActiveCell.Interior.Color = RGB(0, 256, 0) Then
        ActiveSheet.Tab.Color = 3
    Else
        'just some random color
        ActiveSheet.Tab.Color = 100
    End If

End Sub

我的意图是在第一张纸和另外两张纸(10张纸)中,相应标签的颜色反映了特定单元格的颜色,其颜色基于相应纸张中的条件语句。意味着3张纸中的每一张都具有基于相应纸张中的单元颜色的自己的颜色。 我知道代码中有错误,我只想要一些人指出错误以及我需要如何纠正错误。我是新手,因此会感激任何帮助。

1 个答案:

答案 0 :(得分:0)

拜托,你能试试吗?

Sub setColor(sheet As String)
    With ActiveWorkbook.Sheets(sheet)
      If sheet = "Sheet1" Then
        .Tab.Color = .Range("A1").Interior.Color
      ElseIf sheet = "Sheet2" Then
        .Tab.Color = .Range("B5").Interior.Color
      ElseIf sheet = "Sheet3" Then
        .Tab.Color = .Range("F4").Interior.Color
      End If
    End With
End Sub

您可以通过这种方式从工作表中调用它:

   Private Sub Worksheet_Change(ByVal Target As Range)
      'I guess these are the cells that make the final value [and color] change
      If Target.Column = 2 Then
          If Target.Row = 2 Or Target.Row = 71 Or Target.Row = 82 Or Target.Row = 107 Then setColor ActiveSheet.Name
      End If
   End Sub

如果三个工作表中的单元格相同,则应该更简单,因为您不需要if...elseif...end if部分。

如果这不起作用,请尝试以下方法:

Private Sub Worksheet_Change(ByVal Target As Range)
  setColor ActiveSheet.Name
End Sub

但请注意,每次工作表上的单元格发生更改时,都会调用setColor子目录,因此根据您输入的数据量,可能会降低整个电子表格的速度。