Получить значения всех флажков в Excel с помощью VBA
Вопрос
Я добавляю много флажков на лист Excel программно, используя следующий код:
With ActiveSheet.CheckBoxes.Add(rCell.Left, rCell.Top, rCell.Width, rCell.Height)
.Interior.ColorIndex = xlNone
.Caption = ""
End With
Теперь мне нужен код, который проанализировал бы все флажки, присутствующие на листе, и получил бы их значение (true или false), а также ячейку, в которой они присутствуют.Как это сделать?
Спасибо...
Решение
Sub Add_CheckBoxes()
With ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height)
.Interior.ColorIndex = xlNone
.Caption = ""
End With
For Each chk In ActiveSheet.CheckBoxes
If chk Then MsgBox "Checked"
Next
End Sub
Другие советы
Как только вы добавите флажки, вы можете перебирать их следующим образом:
Sub Checkbox_Test()
Dim chk As CheckBox
Dim cell As Range
For Each chk In ActiveSheet.CheckBoxes
If chk.Value = Checked Then '1 is true, but the constant
Set cell = chk.TopLeftCell ' "Checked" avoids "magic numbers".
'do whatever with cell
MsgBox cell.Address
End If
Next chk
Конечная Подлодка
Не связан с StackOverflow