我有以下代码,我从这个论坛得到的。这工作正常但在删除excel文件中的记录时抛出错误。我得到的错误是 运行时错误' 13': 输入不匹配。
单击“调试”按钮时,它会突出显示代码中的以下行:
If Target.Value <> vbNullString Then 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
答案 0 :(得分:1)
当您删除时,您正在更改多个单元格,以便Target.Value <> vbNullString
抛出错误。
您无法一次性批量比较多个单元格的范围。
添加一项检查以确保只有A列正在发生变化且只有一个Target单元格不是整个范围:
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