在更改事件上键入错误

时间:2016-08-04 22:03:43

标签: excel vba excel-vba

我在使用Excel VBA脚本时遇到了一些问题。我正在尝试将数据设置为在第一列中输入数据时形成时间戳的位置,但在删除第一个单元格时删除该行。

错误13不断弹出,但我无法看到类型不匹配的位置。我试过了:

  • 将单独的mostRecentApplication类型变量定义为Range
  • 将Target.Column和Target.Row设置为单独的变量
  • 使用For循环
  • 使用For Each循环
  • 使用With循环

    所有这一切都不断抛出错误13.以下是我的代码,任何帮助将不胜感激。

    Target
  • 1 个答案:

    答案 0 :(得分:2)

    在通过VBA更改单元格之前禁用事件。

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        Application.ScreenUpdating = False
    
        If Target.Column = 1 Then
            Application.EnableEvents = False
            If Target.Column = 1 And Target.Value2 <> "" Then
                Cells(Target.Row, 3).Value = Format(Date, "ddd mmm d, yyyy")
                Cells(Target.Row, 4).Value = Format(Now, "hh:mm")
            ElseIf Target.Value2 = "" Then
                Target.EntireRow.ClearContents
            End If
            Application.EnableEvents = True
        End If
    
        Application.ScreenUpdating = True
    
    End Sub