代码之家  ›  专栏  ›  技术社区  ›  Anu

如何在不复制空单元格的情况下复制筛选后的数据

  •  0
  • Anu  · 技术社区  · 6 年前

    我需要什么

    我只需要将过滤后的值从当前工作表复制到另一个工作表。我是这样做的

    Sub filterCopy()
        Selection.SpecialCells(xlCellTypeVisible).Copy
        Sheets("Sheet2").Select
        Range("A1").Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
    End Sub
    

    发行

    图片

    过滤纸 enter image description here 将过滤后的数据复制到另一个工作表之后 enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Elcan goug    6 年前

    您的代码不考虑垂直空间中的最后一个单元格,而是实际复制A1范围内的所有内容。

    解决方案是首先,避免选择,因为它提供低性能,然后使用

    Cells(Rows.Count, "A").End(xlUp).Row
    

    获取A列中的最后一行。这给了我们

    Sub filterCopy()
        Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy Sheets(2).Range("A1")
    End Sub
    

    要复制包含筛选行的完整表,请使用

    Sub filterCopy()
        Sheets(1).UsedRange.SpecialCells(xlCellTypeVisible).Copy Sheets(2).Range("A1")
    End Sub
    
    推荐文章