在Excel中如何更新基于另一个单元格背景颜色的单元格值

我觉得我需要一些VBA的excel问题的尴尬。 我对VBA有相当的了解,但是这让我很难过。

我有条件格式,检查A列中给出的%,基于这个值填充单元格某种颜色,例如用户可以input50%,这将填补一半的单元格见下文,

在这里输入图像说明

现在,我的老板想让它反过来,所以如果他自己给一个单元填充一个颜色,它就会以50%的比例来填充%列

提前致谢

Benjiii

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

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