0

オートフィルターを備えた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

前もって感謝します

4

1 に答える 1

0

チェックボックスがフィルタリングによって非表示になっていると思います。

これは、ループ内で役立つ場合があります。

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
于 2012-10-17T16:54:19.313 に答える