проверка дубликатов с текстовым полем формы в Excel VBA - PullRequest
0 голосов
/ 14 марта 2020

Я сохраняю данные из пользовательской формы EXCEL в таблицу Excel. У меня проблема с проверкой дубликатов.

мои данные в столбце типа А, например ... 300, 304, 305, 306, 307, 308, 309, 310 и т. д. *

для Например, пользователь ввел 306 в соответствующем текстовом поле, затем в окне сообщения отобразятся «введенные дубликаты данных».

Я написал следующий код в текстовое поле после обновления, но он не работает. любая помощь tqs ...

Dim Cell As Variant
Dim Source As Range


Set Source = Worksheets("NFLAT").Range("a2:a50")

For Each Cell In Source

If Application.WorksheetFunction.CountIf(Source, Cell) > 1 Then
  MsgBox "Given number already exists"
End If

Next Cell

1 Ответ

0 голосов
/ 16 марта 2020

Нет необходимости в l oop, просто проверьте значение в текстовом поле. Если существует CountIf> 0 (не> 1).

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    Dim rng As Range, ws As Worksheet, lastrow As Long
    Set ws = Worksheets("NFLAT")
    lastrow = ws.Range("A" & Rows.Count).End(xlUp).Row
    Set rng = ws.Range("A2:A" & lastrow)

    With Me.TextBox1
        If Application.WorksheetFunction.CountIf(rng, .value) > 0 Then
            MsgBox .value & " already exists", vbCritical, "Checked " & rng.Address
        Else
            MsgBox .value & " is OK ", vbInformation, "Checked " & rng.Address
        End If
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...