使用最后一行复制并粘贴,错误91

时间:2017-03-15 14:41:43

标签: excel vba excel-vba runtime-error copy-paste

我正在尝试根据范围中的最后一行复制和粘贴一系列值,这意味着行数会有所不同,但列数将保持不变。

我写的代码继续返回错误:

  

对象变量或未设置块变量

这个错误是什么意思,我该如何解决?

Sub update()

Dim LR As Range
Dim Revise As Range

LR = Cells(Rows.Count, "M").End(xlUp).Row

Set Revise = Range("M1:M" & LR)

Revise.Copy

Sheets(Weekly).Select
Cells(1,1).PasteSpecial xlPasteAll


End Sub

2 个答案:

答案 0 :(得分:2)

你的问题是:

  • 您将LR定义为Range,这是一个对象
  • 您尝试为其分配值,而不使用Set关键字(例如Set Revise
  • 如果添加Set,则会出现错误13,因为您正在尝试将数字放入范围! ;)

更正后的代码:

Sub update()
    Dim LR As Double
    Dim SrcWS As Worksheet
    Set SrcWS = ThisWorkbook.Sheets("Sheet1")

    With SrcWS
        LR = .Cells(.Rows.Count, "M").End(xlUp).Row
        .Range("M1:M" & LR).Copy
    End With 'SrcWS 

    ThisWorkbook.Sheets("Weekly").Cells(1,1).PasteSpecial xlPasteAll
End Sub

答案 1 :(得分:0)

你有一些代码......你需要更多地掌握你的技能......尝试以下方法:

Sub update()

    Dim LR As Long
    Dim Revise As Range
    LR = Cells(Rows.Count, "M").End(xlUp).Row
    Set Revise = Range("M1:M" & LR)
    Revise.Copy
    Sheets("Weekly").Cells(1, 1).PasteSpecial xlPasteAll

End sub