【发布时间】:2017-07-22 02:06:21
【问题描述】:
我有一个宏,它可以成功地自动筛选范围和筛选条件。我正在寻找复制可见的这个结果范围,并将其粘贴到其他地方,但是在选择这个过滤范围时遇到了麻烦。我的数据的第 1 行是标题。
这里是代码 sn-p,应用于过滤后的数据:
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 并复制,但我不知道如何向下递增。有什么建议吗?
【问题讨论】:
-
我刚刚意识到使用 SpecialCells(xlCellTypeVisibile).Select 可以缓解这个问题,因为过滤后的单元格显然不可见。但我仍然对这个问题的答案以及使用自动过滤数据时选择范围的“正确”方法感兴趣。
-
如你所说,复制可见单元格即可。作为从整个列表覆盖单元格 A2:W235 的过滤列表复制的基本示例,我将使用类似于:
Sheet1.Range("A2:W235").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet3.Range("A1")