在筛选数据中选择范围 - Excel VBA

时间:2017-06-12 16:13:02

标签: vba excel-vba excel

我有一个自动过滤范围&成功过滤标准。我希望复制 - 显示此结果范围,并将其粘贴到其他位置,但是在选择此过滤范围时遇到问题。我的数据的第1行是标题。

以下是应用于过滤数据的代码段:

Set mainsheet = Workbooks("MyFile.xlsm").Sheets("Main")
Range("A1").Select

With mainsheet
.Range(.Cells(Selection.Row + 1, 1), .Cells(Selection.Row + 1, 47)).Select
End With

我认为这会将光标向下移动到下一个可见单元格,但它实际上向下移动到单元格A2(已过滤掉)。

我需要选择第一行数据,不包括我的标题,所以我可以xlDown和copy,但我无法弄清楚如何向下增加。有什么提示吗?

2 个答案:

答案 0 :(得分:0)

使用此表示法

With mainsheet.UsedRange
    .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy
End With

.Offset(1)将整个选择向下移动一行(不包括标题)

.Resize(.Rows.Count - 1)删除偏移

选择的最后一个(额外)行

答案 1 :(得分:0)

我刚刚意识到使用SpecialCells(xlCellTypeVisibile).Select可以缓解这个问题,因为过滤后的细胞显然不是可见的