使用VBA防止多列重复输入

时间:2019-01-18 21:46:09

标签: excel vba duplicates

我想防止用户输入基于两列的重复条目。

例如:B列是供应商,E列是零件编号,不应有重复的供应商/零件编号组合。

这是我所有的代码:

' Runs events based on target changes
Private Sub Worksheet_Change(ByVal Target As Range)

    Confirmation Target
    'ChangeDirectCost Target

End Sub

' Keeps user from entering the same vendor / part # twice
Private Sub Confirmation(ByVal Target As Range)
    With Target
        If (.Column <> 2 And .Column <> 5) Or .Cells.Count = 1 Then Exit Sub

        If WorksheetFunction.CountIf(Columns(.Column), .Value) > 1 Then
            Application.DisplayAlerts = False
            .ClearContents
            Application.DisplayAlerts = True
            MsgBox "Vendor / Part # combination already exists!"
        End If

    End With
End Sub

有时,在将代码修改为B列后,我立即得到类型不匹配错误,有时是在对代码进行调整后,得到了MsgBox,而在E列中没有值。

最初,代码在模块下,但是直到我将其放在Sheet1下才起作用。

0 个答案:

没有答案