Excel VBA筛选和复制粘贴数据

Excel VBA筛选和复制粘贴数据,vba,excel,Vba,Excel,给定一个数据集,也就是说10列。在A栏我有日期,在B栏我有%。我只想筛选A列和B列的2014年数据 仅将可见/筛选的单元格复制到新工作表中,作为问题请求的第一部分 若要获取第一行数据,请假定有数据且第1行中有标题,然后将其粘贴到新工作表的下一可用行 Activesheet.range("A1").end(xldown).entirerow.copy sheets("Sheet2").range("A65536").end(xlup).offset(1,0) 循环解决方案,将数据从sheet1复

给定一个数据集,也就是说10列。在A栏我有日期,在B栏我有%。我只想筛选A列和B列的2014年数据 仅将可见/筛选的单元格复制到新工作表中,作为问题请求的第一部分

若要获取第一行数据,请假定有数据且第1行中有标题,然后将其粘贴到新工作表的下一可用行

Activesheet.range("A1").end(xldown).entirerow.copy sheets("Sheet2").range("A65536").end(xlup).offset(1,0)
循环解决方案,将数据从sheet1复制到sheet2,前提是列a始终包含数据(在非常大的数据集上会有点慢):


使用
Offset
方法如下:

ActiveSheet.Range("A1:AR1617").Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy 
上述代码复制过滤后的数据,不包括标题。

这就是您正在尝试的吗?

而您的代码的问题是?我不知道如何编写下一行代码,这将带我进入第一行数据,这将带我*谢谢您的回答jaybee。不幸的是,我不能投票给你,因为我没有至少15个代表。是的,这就是我试图实现的。你的方法非常有效太对不起,我不能投票给你
Activesheet.range("A1").end(xldown).entirerow.copy sheets("Sheet2").range("A65536").end(xlup).offset(1,0)
Sub copyFilteredData(ByVal iYear As Integer, ByVal dPercent As Double)
Dim rCell As Range

For Each rCell In Sheet1.Range("A1:A65536").SpecialCells(xlCellTypeConstants)

    If Year(rCell.Offset(0, 4).Value) = iYear And rCell.Offset(0, 13).Value < dPercent Then
        rCell.EntireRow.Copy Sheet2.Range("A65536").End(xlUp).Offset(1, 0)
    End If

Next rCell

End Sub
copyfilteredData 2014,0.7
ActiveSheet.Range("A1:AR1617").Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy