复制 - 在创建增长列表时粘贴值

时间:2017-11-01 12:30:47

标签: vba excel-vba excel

我希望每次打开excel文件时运行一个宏,然后将日期(I5)与列表中的最后一个条目(列L)进行比较,如果日期较旧,则复制一些值(I5)和I11)并将它们粘贴到列表的下一个空行(列L和M)。我已经编写了下面的代码,但它不起作用,我得到运行时错误424和我在网上找到并试图适应的所有其他语法也不起作用。有人可以帮忙吗?

Private Sub Workbook_Open()

If Worksheets("overdue").Range("I5").Value > Worksheets("overdue").Range("L2").End(xlDown).Value Then  
Worksheets("overdue").Range("I5").Copy  
Worksheets("overdue").Range("L1").End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues
Worksheets("overdue").Range("I11").Copy    
Worksheets("overdue").Range("M1").End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues

End If

End Sub

1 个答案:

答案 0 :(得分:1)

尝试下面的代码,以防你在列中只有1行" L" (我猜标题):

Private Sub Workbook_Open()

Dim LastRow As Long

With Worksheets("overdue")
    LastRow = .Range("L1").End(xlDown).Row

    If LastRow >= 2 Then
        If .Range("I5").Value > .Range("L" & LastRow).Value Then
            .Range("L" & LastRow + 1).Value = .Range("I5").Value
            .Range("M" & LastRow + 1).Value = .Range("I11").Value
        End If
    End If
End With

End Sub