宏:过滤,复制和粘贴特殊

时间:2015-01-02 16:50:33

标签: vba copy-paste

我遇到了以下代码的Paste Special部分的问题

Sub Copy_Filter1()

    Sheets("MASTER PLACEMENT").Select
Dim LastRow As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Sheets("MASTER PLACEMENT").Range("A1").CurrentRegion.AutoFilter
Selection.AutoFilter Field:=52, Criteria1:=">=104"

Columns("AG:AS").EntireColumn.Hidden = True
Rows("1:1").EntireRow.Hidden = True

If (Range("A" & Rows.Count).End(xlUp).Row <= LastRow) Then
    Range("A2").CurrentRegion.Copy
    Sheets("Sheet1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
End If
End Sub

2 个答案:

答案 0 :(得分:0)

PasteSpecialRange对象的方法,而不是Worksheet对象(您当前正在使用它的对象)。

例如,您的通话应如下所示:

' Paste the current clipboard contents to cell B2 on Sheet1.
Sheets("Sheet1").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

答案 1 :(得分:0)

使用类似下面的内容

Sub Copy_Filter1()


    Sheets("Sheet1").Range("A1:A1000").Select
    Dim LastRow As Long
            LastRow = Range("A" & Rows.Count).End(xlUp).Row
            Sheets("Sheet1").Range("A1").CurrentRegion.AutoFilter
            Selection.AutoFilter Field:=1, Criteria1:=">=104"


    If (Range("A" & Rows.Count).End(xlUp).Row <= LastRow) Then
        Range("A2").CurrentRegion.Copy
        Sheets("Sheet1").Range("C3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

    End If

End Sub