Excel VBA – 与Worksheet_Change Code的问题

我试图创build一个macros,将date放在另一个工作表上的一个单元格,当初始工作表被改变,但它给了我一个超出范围的错误。 有没有办法解决这个问题,或者我只是无法使用Worksheet_Change这个案件。 如果是这样,我可以使用什么? 我只是试图testing它,所以我只有这样到目前为止:

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的声明给我一个错误,说应用程序定义或对象定义的错误。 (方面说明我没有在我的实际代码中注释掉)

你会得到错误,因为你正在检查条件

 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)selectE1048576 Cell它是excel支持的最后一个允许的行。

.Offset(1, 0).Value尝试指向不支持的E1048577 Cell

所以你得到应用程序定义的错误。 希望这是有道理的。