Предотвращение дублирования записей в нескольких столбцах с помощью VBA - PullRequest
0 голосов
/ 19 января 2019

Я бы хотел, чтобы пользователь не вводил дубликат записи, основанный на двух столбцах.

Пример: в столбце 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.

...