我用下面的代碼自動生成一個新的複選框和細胞鏈接到它:返回CheckBoxes.LinkedCell解決VBA
ActiveSheet.CheckBoxes.Add().LinkedCell = Selection.Address
我想創建另一個sub
應該改變.LinkedCell
單元格的背景顏色當複選框被選中(藍色)或未選中(紅色)時,選中複選框。我將在工作表中有大約200個複選框。
有沒有辦法獲取/返回當前選中/未選中複選框的.LinkedCell
地址,以便sub
可以更改該單元格的背景顏色?
例如,讓我們假設.LinkedCell
是最初放置複選框的單元格。這將是每個複選框的初始狀態:
,並且這將是用戶檢查後的結果/取消選中checboxes:
直到現在我用這個代碼更改複選框本身的背景顏色。但我不想那樣,我想改變.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
我不知道你所說的 「當前選中/取消選中複選框」 是什麼意思?你在尋找一個活動嗎? – Comintern
(a)你可以根據它是「TRUE」還是「FALSE」來有條件地格式化單元格? – YowE3K
(b)你有代碼鏈接到CheckBox的Click事件嗎?如果是這樣,你應該能夠使用CheckBox的.LinkedCell屬性,然後將該單元格的背景顏色設置爲任何你喜歡的。 – YowE3K