2012-10-15 207 views
0

我有一個自動篩選器的Excel中的列表,並且每行都有一個複選框。VBA +複選框+自動篩選器

我用宏做了一個按鈕來選擇所有的複選框。這工作正常。但是,當我過濾我的行我的'全選'必須只選擇可見覆選框

與我的代碼,它仍然選擇所有的複選框。有沒有人有想法解決這個問題?

我的代碼:

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

我要帶它,你的複選框都被過濾隱藏。

這可能幫助,你的循環中:

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