我在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
提前致谢
答案 0 :(得分: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