请确认自动过滤器的复制模式

时间:2011-10-20 11:00:57

标签: excel vba

我只需要与你们确认一下!

我有3000行,我的宏必须将所有内容从1500到2500行复制到其他工作表,条件是,我已经为工作表设置了自动过滤器,现在有些单元格是不可见的,所以工作表只显示我们已过滤的行,因此,由于自动过滤模式,1500到2500之间的某些行是不可见的。现在我的宏必须复制1500到2500行的所有内容,即使这些行因auotfilter而不可见。

我刚刚在已过滤的工作表上执行了正常的复制粘贴操作,并且它复制了从1500到2500的所有行,这些行也是不可见的,它是如何工作的?即使设置了过滤器,复制,粘贴操作也会复制所有单元格?我只是想确保因为昨天它只复制了过滤的行,今天它复制了所有的行,所以我只是有点困惑

我用谷歌搜索了它,但我发现只是复制可见细胞特殊类型的自动过滤模式。不完全是我的问题

1 个答案:

答案 0 :(得分:2)

如果您有一个过滤器处于活动状态并选择完整的可见行x..y,您会注意到没有一个闪烁的帧重新占据一个范围,而是多个闪烁的盒子....而且确实是手动的Ctrl-C / Ctrl-V动作只会复制可见的行。

对于VBA代码,它是不同的。试试这个:

Sub test()
Dim SR As Range ' source range

    ' each cell of the Autofiltered range which is visible
    For Each SR In ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        ' rows between 1500 and 2500
        If SR.Row >= 1500 And SR.Row <= 2500 Then
            ' do the needfull 
            Debug.Print SR.Row
        End If
    Next SR
End Sub

亲切的问候