代码在模块中工作,但不在工作表中工作错误1004

时间:2017-08-18 04:31:23

标签: excel-vba runtime-error autofill vba excel

希望在下面的代码中收到帮助。它适用于模块1,但不适用于任何工作表。我凭借有限的知识尽力而为,但未能解决它。

Sub lastrow()
    Dim MCFPSheet As Worksheet
    Set MCFPSheet = ThisWorkbook.Worksheets("MCFP Referrals YTD")

    Dim lastrow As Long
    lastrow = MCFPSheet.Range("I2").End(xlDown).Row

    With MCFPSheet.Range("R8")
        .AutoFill Destination:=Range("R8:R" & lastrow&)
    End With

    With MCFPSheet.Range("S2")
        .AutoFill Destination:=Range("S2:S" & lastrow&)
    End With

    With MCFPSheet.Range("T2")
        .AutoFill Destination:=Range("T2:T" & lastrow&)
    End With

    With MCFPSheet.Range("U2")
        .AutoFill Destination:=Range("U2:U" & lastrow&)
    End With

    With MCFPSheet.Range("V2")
        .AutoFill Destination:=Range("V2:V" & lastrow&)
    End With

    With MCFPSheet.Range("W2")
        .AutoFill Destination:=Range("W2:W" & lastrow&)
    End With
End Sub

我收到了

  

错误1004

.AutoFill Destination:=Range("R8:R" & lastrow&)行。

1 个答案:

答案 0 :(得分:1)

根据@Sixthsense的评论,您需要为目的地指定工作表,如果所有这些With语句都是单行的,那么所有这些With语句都没有多大意义。

使用Sub lastrow() Dim MCFPSheet As Worksheet Set MCFPSheet = ThisWorkbook.Worksheets("MCFP Referrals YTD") Dim lastrow As Long lastrow = MCFPSheet.Range("I2").End(xlDown).Row With MCFPSheet .Range("R8").AutoFill Destination:=.Range("R8:R" & lastrow) .Range("S2").AutoFill Destination:=.Range("S2:S" & lastrow) .Range("T2").AutoFill Destination:=.Range("T2:T" & lastrow) .Range("U2").AutoFill Destination:=.Range("U2:U" & lastrow) .Range("V2").AutoFill Destination:=.Range("V2:V" & lastrow) .Range("W2").AutoFill Destination:=.Range("W2:W" & lastrow) End With End Sub 方式会更短:

Destination:=.Range

请注意,MCFPSheet现在也使用.之前的前导Range来引用&表。 我还从lastrow&中删除了⎕SE {I},但我没有看到任何意义。