Получить значения всех флажков в Excel с помощью VBA

StackOverflow https://stackoverflow.com/questions/1409744

  •  05-07-2019
  •  | 
  •  

Вопрос

Я добавляю много флажков на лист 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

Конечная Подлодка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top