我将工作表代码中的对象(复选框)传递给模块以更新其属性(值和背景色)。
Dim Range1 As Range
Set Range1 = Range("K2")
Dim ChkBox1 As Object
Set ChkBox1 = CheckBox1
传递代码是:
If CheckBox1.Value = True Then
SetGreen R1:=Range1, C1:=ChkBox1
Else
SetRed R1:=Range1, C1:=ChkBox1
End If
因此,如果选中复选框,则将背景色设置为 green ,如果未选中,则将其设置为 red。
设置为红色的调用过程代码为:
Sub SetRed(ByVal R1 As Range, ByVal C1 As Object)
R1.Interior.Color = RGB(255, 0, 0)
With C1
.BackColor = RGB(255, 0, 0)
.Value = False
End With
End Sub
在代码返回到调用过程并且此过程退出之前,此模块中的属性(值和背景色)不会更新。不过,单元格的内部颜色会在调用的过程中立即更新。为什么复选框属性不立即更新?