返回CheckBoxes.LinkedCell地址的VBA
我使用下面的代码自动生成一个新的checkbox,并将一个单元格链接到它:
ActiveSheet.CheckBoxes.Add().LinkedCell = Selection.Address
我想创build另一个应该改变checkbox的.LinkedCell
单元格的背景颜色,当checkbox被选中(蓝色)或未选中(红色)。 工作表中将有大约200个checkbox。
有没有办法获取/返回当前选中/未选中checkbox的.LinkedCell
地址,以便该sub
可以更改该单元格的背景颜色?
例如,让我们假定.LinkedCell
是最初放置checkbox的单元格。 这将是每个checkbox的初始状态:
这将是用户检查/取消选中checbox后的结果:
直到现在我用这个代码来改变checkbox本身的背景颜色。 但是我不想那个,我想改变.LinkedCell
的颜色。
Sub SetMacro() Dim cb For Each cb In ActiveSheet.CheckBoxes If cb.OnAction = "" Then cb.OnAction = "CheckedUnchecked" Next cb End Sub
和
Sub CheckedUnchecked() With ActiveSheet.Shapes(Application.Caller).DrawingObject If .Value = 1 Then .Interior.ColorIndex = 5 Else .Interior.ColorIndex = 3 End If End With End Sub
你可以用下面的代码replace你的CheckedUnchecked代码:
Sub CheckedUnchecked() With ActiveSheet.Range(ActiveSheet.CheckBoxes(Application.Caller).LinkedCell) If .Value Then .Interior.ColorIndex = 5 Else .Interior.ColorIndex = 3 End If End With End Sub