删除excel文件

时间:2017-01-18 14:50:37

标签: excel-vba vba excel

我有以下代码,我从这个论坛得到的。这工作正常但在删除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

1 个答案:

答案 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