0

当执行以下 VB 代码并打开“跟踪更改”功能时,我在 MS Excel 中遇到错误:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        If IsEmpty(Target) Then
            Target.Offset(0, 1).Value = Empty
        Else
            Target.Offset(0, 5).Value = Now()
        End If

    End If

End Sub

似乎我可以很好地将数据输入前 2 行,但是一旦我开始在第 3 行及以后填充数据,我就会收到一条错误消息,指出“运行时错误 '1004' 应用程序定义或对象定义错误”。

4

2 回答 2

0

更改跟踪强制工作簿变为共享,这会禁用许多功能(例如,您无法在启用更改跟踪的情况下访问 VBA)。

我不完全确定为什么会抛出此错误,但避免看到此消息的解决方法是Resume Next在发生错误时:

On Error Resume Next

If只需添加有关您的第一个块 ( If Target.Column = 1 Then)的这行代码。请注意,理想情况下,您应该要找出此问题的根源,并且此解决方案是一种解决方法,这可能不是一个好的做法。

于 2013-02-13T17:42:48.067 回答
0

我从第 2 行开始收到此代码并打开跟踪更改的错误。然而,无论错误如何,代码似乎都可以执行它应该执行的操作,因此我建议On Error Resume Next您解决此问题。

这不会解决更改跟踪的任何潜在问题,并且您的更改可能不会被跟踪。

于 2013-02-13T17:45:49.630 回答