2015-09-04 88 views
-1

我对Excel问题感到尴尬,我认为需要一些VBA。我对VBA有很好的理解,但是这让我很难过。在Excel中如何更新基于另一个单元格背景颜色的单元格值

我的条件格式,其检查在列A中给出的重量%,基于该值它填充细胞特定的颜色,例如,用户可以输入其中50%将填补半数细胞的下面看到的,

enter image description here

现在我的老板想,如果他填写的单元格的颜色它全面走另一条路自己会用芳香的50%填充%列例如

在此先感谢

Benjiii

+0

你能告诉我们你到目前为止试过的东西以及你现在使用的代码吗? –

+0

到下周,它不是100%需要,但我有点说它不会太糟糕....想一定擅长有这个公式...但是在这里,我们是哈哈 –

+0

而我迄今为止尝试过issss基本上这个http://stackoverflow.com/questions/20008632/excel-can-i-create-a-conditional-formula-based-on-the-color-of-a-cell –

回答

1

你可以用一个技巧来实现这一点。由于Excel VBA不提供捕获范围颜色变化事件的事件,因此您需要其他东西来触发您的代码。您可以通过将颜色单元格绑定到列表验证并仅允许“”(空)和“确定”值来实现此目的。没有文字可见,因为我们会使文字与背景颜色相同,但您可以捕捉更改事件。用户可以从列表中选择“”或“确定”。这里是代码:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rowStart As Integer 
Dim rowEnd As Integer 
Dim colStart As Integer 
Dim colEnd As Integer 
    rowStart = 3 'insert correct values according to your sheet 
    rowEnd = 10 
    colStart = 2 
    colEnd = 7 
    With Target 
    If .Count = 1 Then 
     .Font.Color = .Interior.Color 
     If .Row >= rowStart And .Row <= rowEnd And .Column >= colStart And .Column <= colEnd Then 
     If Target = " " Then 
      Cells(.Row, colStart - 1) = (.Column - colStart + 1)/(colEnd - colStart + 1) 
     Else 
      Worksheet_Change Target.Offset(, -1) 
     End If 
     End If 
    End If 
    End With 
End Sub 
相关问题