我希望每次打开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
答案 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