我有一个尴尬的excel问题,我认为需要一些VBA。我对VBA有很好的了解但是这让我很难过。
我有条件格式,检查A列中给出的%,根据此值填充单元格的某种颜色,例如用户可以输入50%,这将填充下面的一半单元格,
现在我的老板希望它反过来如此,如果他自己填充一个单元格的颜色,它会以50%的比例填充%列,例如
提前致谢
Benjiii
答案 0 :(得分:1)
您可以使用技巧来完成此任务。由于Excel VBA不提供捕获范围颜色更改事件的事件,因此您需要其他东西来触发代码。您可以通过将颜色单元格绑定到列表验证并仅允许“”(null)和“OK”值来实现此目的。没有文本可见,因为我们将使文本与背景颜色相同,但您可以捕获更改事件。用户可以从列表中选择“”或“确定”。这是代码:
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