复制当前工作表中的所有可见行并将其粘贴到另一个工作表

时间:2012-07-18 12:17:56

标签: excel vba excel-vba

我有一张工作表,我在其上创建了一个带有过滤器集的列表。当我从该列表中选择一些值时,会显示某些值(可见),其余值将被隐藏。我只想将该表中的所有可见数据(包括所有可见行)复制到另一个工作簿。 我使用了一些代码,但它只选择了工作表的第一个单元格,我需要将所有可见行复制到另一个工作簿。

Range("A1").Select
Do
ActiveCell.offset(1,0).Select
Loop While ActiveCell.EntireRow.Hidden = True

1 个答案:

答案 0 :(得分:1)

试试这个

'~~> Remove any filters
ActiveSheet.AutoFilterMode = False

'~~> Filter, offset(to exclude headers)
With rRange
    .AutoFilter Field:=lCol, Criteria1:=strCriteria
    .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Copy
    '
    '~~> Do whatever you want to do witht he copied rows
    '
End With

'~~> Remove any filters
ActiveSheet.AutoFilterMode = False
  1. 其中rRange是自动过滤范围
  2. 其中lCol是相关列。
  3. 其中strCriteria是自动过滤条件