我正在尝试创建一个宏,将日期放在另一个工作表的单元格中,当初始工作表发生更改时,但它会给我一个超出范围的错误。有没有办法绕过这个,或者我根本无法使用Worksheet_Change这种情况。如果是这样,我可以使用什么?我只是想测试它,所以到目前为止我只有这个:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Worksheets("Sheet4").Activate
Range("E1").End(xlDown).Offset(1, 0).Value = Date
Application.EnableEvents = True
End Sub
我现在有了这个:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Worksheets("Testing Sheet").Range("E2").Value = "" Then
Worksheets("Testing Sheet").Range("E2").Value = Date
Else
' Worksheets("Testing Sheet").Range("E2").End(xlDown).Offset(1, 0).Value = Date
End If
Application.EnableEvents = True
End Sub
但是Else的声明给了我一个错误,说明应用程序定义或对象定义错误。 (旁注我在实际代码中没有注释掉它)
答案 0 :(得分:1)
您将收到错误,因为您正在检查此条件
If Worksheets("Testing Sheet").Range("E2").Value = "" Then
假设你有一些价值E2 Cell
。所以它转到Else
声明
Worksheets("Testing Sheet").Range("E2").End(xlDown).Offset(1, 0).Value = Date
但可能没有E2 Cell
以下的数据。所以.End(xlDown)
选择E1048576 Cell
这是excel支持的最后一行。
.Offset(1, 0).Value
尝试指出不受支持的E1048577 Cell
。
所以你得到了应用程序定义的错误。希望这是有道理的。