运行时错误';13';:删除excel文件中的记录时类型不匹配

运行时错误';13';:删除excel文件中的记录时类型不匹配,excel,vba,Excel,Vba,我有下面的代码,我从这个论坛得到的。这工作正常,但在我删除excel文件中的记录时引发了一个错误。我得到的错误是 运行时错误“13”: 类型不匹配 单击“调试”按钮时,将突出显示代码中的以下行: If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID 如果Target.Value vbNullString,那么Target.Offset(,1).Value=GetGUID 我想我知道问题是什么

我有下面的代码,我从这个论坛得到的。这工作正常,但在我删除excel文件中的记录时引发了一个错误。我得到的错误是 运行时错误“13”: 类型不匹配

单击“调试”按钮时,将突出显示代码中的以下行:

If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID
如果Target.Value vbNullString,那么Target.Offset(,1).Value=GetGUID
我想我知道问题是什么,但不知道如何解决

完整的代码是

Private RANGE_CELL As Range

 Public Function GetGUID() As String
        GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36)
    End Function

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID
End If

End Sub
Private RANGE\u单元格作为范围
作为字符串的公共函数GetGUID()
GetGUID=Mid$(CreateObject(“Scriptlet.TypeLib”).GUID,2,36)
端函数
私有子工作表_更改(ByVal目标作为范围)
如果Target.Column=1,则
如果Target.Value vbNullString,则Target.Offset(,1).Value=GetGUID
如果结束
端接头

删除时,您正在更改多个单元格,因此
Target.Value vbNullString
会抛出错误

一次不能对多个单元格的区域进行大容量比较

添加检查以确保只有列a在更改,并且只有一个目标单元格而不是整个范围:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
    If Target.Value <> vbNullString Then Target.Offset(, 1).Value = GetGUID
End If

End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Column=1且Target.Count=1,则
如果Target.Value vbNullString,则Target.Offset(,1).Value=GetGUID
如果结束
端接头

删除记录时是否删除整行?