VBA + флажки + автофильтр

У меня есть список в excel с автофильтром, и в каждой строке есть флажок.

Я сделал кнопку с макросом для выбора всех флажков. Это прекрасно работает. Но когда я фильтрую свои строки, мой «выбрать все» должен выбирать только видимые флажки.

С моим кодом он по-прежнему выбирает все флажки. Есть ли у кого-нибудь идея решить эту проблему?

Мой код:

  Sub SelectAll()
  Dim chk As CheckBox

  If Worksheets("Summary").FilterMode = True Then
    MsgBox "Filter mode is on"      
  Else
    MsgBox "Filter mode is off"
    For Each chk In Worksheets("Summary").CheckBoxes
      chk.Value = Checked
    Next
  End If
End Sub

заранее спасибо


person VeVi    schedule 15.10.2012    source источник


Ответы (1)


Я так понимаю, что ваши флажки скрыты фильтрацией.

Это может помочь внутри вашего цикла:

Dim chkRng As Range
Set chkRng = chk.TopLeftCell
Let addr = chkRng.Address ' for debugging to verify the cell the checkbox is associated with
Dim visr As Range
Set visr = chkRng.SpecialCells(xlCellTypeVisible)
Set ans = Intersect(visr, chkRng)
If Not ans Is Nothing Then
   MsgBox ("visible")
End If
person Erik Eidt    schedule 17.10.2012