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
。
所以你得到应用程序定义的错误。 希望这是有道理的。