自动过滤器复制粘贴不是所有数据

时间:2018-03-24 01:17:46

标签: excel vba excel-vba excel-formula

我正在尝试将我的宏排序列L用于DE42,然后将可见单元格复制到AL列减去标题Undefined 3,到表格的最后一行。我得到它排序,但它复制标题,只粘贴一半的数据。这是我到目前为止所做的:

Sub DE42 ()

ActiveWorkbook.Sheets(“Alerted Deduped”)
Range (“L1”).AutoFilter Field:=12 Criteria1:=“DE42”
Range(“AL2”).SpecialCell xlCellTypeVisible.Copy
Range.(“F2”).PasteSpecial xlPasteValues

End Sub()

1 个答案:

答案 0 :(得分:0)

不确定你在表格的最后一行是什么意思?

这将只是过滤并将可见过滤器范围复制到AL2,但如果过滤器仍处于打开状态,则可能会隐藏某些数据。

Sub DE42()

    With ActiveWorkbook.Sheets("Alerted Deduped")

        .Range("L1").AutoFilter Field:=1, Criteria1:="DE42"

        .AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy .Range("AL2")

    End With

End Sub

您的原始过滤器指定了字段12,所以我想知道您是否真的要在字段12上过滤A1:L1?如果是的话,我会相应地更新答案。

版本2 假设数据从A列开始

Option Explicit

Sub DE42()

    With ActiveWorkbook.Sheets("Alerted Deduped")

        .Range("A1").AutoFilter
        .Range("A1").AutoFilter Field:=12, Criteria1:="DE42"

       .AutoFilter.Range.Offset(1, 37).Resize(.AutoFilter.Range.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible).Copy .Range("F2")

    End With

End Sub