2015-09-04 107 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 
相關問題