范围上的PasteSpecial方法失败

时间:2013-08-08 06:18:46

标签: excel vba paste autofilter

我正在尝试将一系列单元格粘贴到另一个工作表中。这是我到目前为止所提出的:

For i = 1 To MyCount

    wbk.Activate

    Set Criteria = Sheets(IGMSheet).Cells(i, 1)


    Sheets(IGMSheet).Range(Cells(i, 2), Cells(i, 4)).Copy 'this copies the 3 cells I need

    w.Activate
    If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter

    Selection.AutoFilter

    Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value

    Range("$BC$1:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial


Next i

如果我只更新范围内的值,那么它可以正常工作,但粘贴单元格不会。

请提供建议。

1 个答案:

答案 0 :(得分:2)

继上面的评论之后,试试这个......

Dim rng As Range

For i = 1 To MyCount
    wbk.Activate
    Set Criteria = Sheets(IGMSheet).Cells(i, 1)

    Set rng = Sheets(IGMSheet).Range(Cells(i, 2), Cells(i, 4))

    w.Activate
    If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter

    Selection.AutoFilter

    Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value

    rng.Copy

    Range("$BC$1:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial
Next i

我注意到其他一些事情。例如,使用.Activate和不合格的单元格Range(Cells(i, 2), Cells(i, 4))

您可能还想查看this