运行时错误';13';:删除excel文件中的记录时类型不匹配
我有下面的代码,我从这个论坛得到的。这工作正常,但在我删除excel文件中的记录时引发了一个错误。我得到的错误是 运行时错误“13”: 类型不匹配 单击“调试”按钮时,将突出显示代码中的以下行:运行时错误';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 我想我知道问题是什么
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
如果结束
端接头
删除记录时是否删除整行?