Как поставить проверку данных в столбце для повторяющихся значений в Excel? - PullRequest
0 голосов
/ 05 июля 2019

Я должен поставить проверку данных в столбце "B" для дублирующихся текстовых значений. поэтому пользователи не могут вводить повторяющиеся значения в столбце "B".

Я использовал пользовательскую формулу для этого, и она работает нормально, но у нее есть ограничение. когда пользователь копирует и вставляет значения, он не работает, он работает только тогда, когда пользователь вводит значения, вводя их в ячейку.

Моя формула: =COUNTIF($B$10:$B$1048576,B10)=1

Я ожидаю решения, при котором даже пользователь не сможет вводить повторяющиеся значения путем копирования и вставки.

1 Ответ

1 голос
/ 05 июля 2019

Вы можете добавить событие Worksheet.Change к вашему рабочему листу и проверить его на наличие дубликатов. Если дубликат был вставлен (вставлен или напечатан), просто вставьте .Undo.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim AffectedRange As Range
    Set AffectedRange = Intersect(Target, Me.Columns("B"))

    If Not AffectedRange Is Nothing Then  'if at least one cell in column B was changed
        Dim Cell As Range
        For Each Cell In AffectedRange 'loop throuh all changed cells in column B
            If Application.WorksheetFunction.CountIf(Me.Columns("B"), Cell.Value) > 1 Then 'test if it is a duplicate
                Application.Undo 'undo the paste/insert
                MsgBox "Duplicates are not allowed", vbExclamation
                Exit For
            End If
        Next Cell
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...