复制Excel VBA错误中的粘贴范围

时间:2013-11-21 10:08:58

标签: excel vba excel-vba

我有一个包含5列(B到F)和可变数量的已填充行的表。 我想将最后3个填充的单元格复制到从第101行开始的同一列的固定范围内。

这是我正在使用的代码:

Dim WSPL As Worksheet
 For i = 2 To 6
        For j = 7 To 1 Step -1
            If Not IsEmpty(WSPL.Cells(j, i).Value) Then
                WSPL.Range(Cells(j - 2, i), Cells(j, i)).Copy Destination:=WSPL.Cells(101, i)
                Exit For
            End If
        Next j
    Next i

这是返回错误:

Run-time error: 1004
Method 'Range' of object'_Worksheet' failed

我上面代码的第5行。 这段代码有什么问题?

1 个答案:

答案 0 :(得分:2)

问题在于这一行

WSPL.Range(Cells(j - 2, i), Cells(j, i)).Copy Destination:=WSPL.Cells(101, i)

您的单元格对象不是完全限定的

试试这个

With WSPL
    .Range(.Cells(j - 2, i), .Cells(j, i)).Copy Destination:=.Cells(101, i)
End With

注意单元格之前的DOT?