2016-04-12 3 views
0

У меня есть столбец, содержащий текст из буквенно-цифровых символов со специальным символом '-', как Kat -1, Amp-2, Xua-09 и т. Д. Я попробовал приведенный ниже код, но он, похоже, не распознает текст, подобный Kat-1, как дубликат. Кто-нибудь может проверить, что не так с этим кодом.Сравните запись в текстовом поле с столбцом, содержащим текст (буквенно-цифровой с '-'), если найден дубликат, а затем оповестить пользователя

Private Sub txt_BPName_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
Dim myrange As Range 
Dim match As Boolean 
Dim val 
Set myrange = Worksheets("Sheet1").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).row) 
match = WorksheetFunction.CountIf(myrange, val) > 0 
If match Then 
MsgBox ("Duplicate") 
Cancel = True 
End If 
End Sub 
+0

Вы не определяете "VAL" – user3598756

ответ

0

Я думаю, вы должны посмотреть на функцию instr(). Вы можете выполнить итерацию по столбцу и сравнить каждую ячейку в столбце с текстовым полем с циклом for. Это, наверное, самое простое решение. Если вы разместите выдержку из вашей таблицы, было бы проще редактировать вашу функцию для работы.

+0

'Private Sub txt_BPName_Exit (ByVal Отменить Как MSForms.ReturnBoolean) Для каждого с в диапазоне ("A2: A" & Cells (Rows.Count, 1) .END (xlUp) .row) Если c.Value = txt_BPName Затем MsgBox "Cell" и c.Address & "является дубликатом." Далее c Отмена = True End Sub' Этот код здесь находит дубликаты, но единственная проблема заключается в том, что он находит мою непосредственную запись в текстовом поле как дубликат. Любая идея о том, как этого избежать. @ user3598756 @Tyler Denton – Abhi0609

+0

Я действительно не понимаю проблему, с которой вы сталкиваетесь, но это сработает. Option Explicit Private Sub CommandButton1_Click() Dim х As Integer Dim I As Integer Dim Match As String Dim строка As Integer Dim здесь As Integer здесь = 0 С ActiveSheet х = .Cells (.Rows. граф, "А"). End (xlUp) .row Match = Me.TextBox1.Text Для I = 1 Для х здесь = InStr (.Cells (I, 1), Match) Если здесь <> 0 Затем MsgBox («Match in row» + Str (I)) End If here = 0 Next I Конец End Sub –

 Смежные вопросы

  • Нет связанных вопросов^_^