Сравнение двух списков на основе нескольких критериев VBA - PullRequest
1 голос
/ 05 октября 2019

Из выбранных элементов в ListBox1 мне нужно добавить элементы в ListBox2.

ListBox1 - заполняется из таблицы «база данных» - [Имя], [старый_номер] // [Дата] взята из поля «Текст пользователя» 2

Список 2 - для новых заказов- [Имя], [Дата], [новый_номер] [новый_номер] взят из пользовательской формы Textbox6

-Если Listbox1 уже имеет [Имя], [Дата], [старый_номер] Я хотел бы обновить запись с приглашением msgbox Продолжить / Пропустить.

-Если ListBox2 уже содержит [Имя] & [Дата], он проинформирует пользователя об изменении

-Если Listbox2 не содержит [Имя] & [Дата] и [новый_номер] добавит элемент в коллекцию.

У моего Excel нет .Items.Contains функция , и я не уверен, почему.

    Dim iCtr As Long

        'If TextBox6.Value = "" Then  ' check if textbox6 - contract/attendance is empty
        '  ans = MsgBox("Book for is empty. Are you sure?", vbYesNo, "Mr.Rubber")
        '  Select Case ans
        '  Case vbYes
        '  Case vbNo
        '  Exit Sub
        '  End Select
        '  End If

        If ListBox1.Selected(iCtr) Then  ' for each selected item in listbox1

        If ListBox2.ListCount - 1 = -1 Then ' to add first item to listbox2
        a = 1
        Else
        a = ListBox2.ListCount
        End If

        For i = 0 To a - 1

        If ListBox2.List(i, 0) & ListBox2.List(i, 1) = ListBox1.List(iCtr, 0) & TextBox2 Then
        ans = MsgBox("Data already exist. This will amend current data." & vbNewLine & "Do you want to continue?", vbYesNo, "Mr.Rubber")
        Select Case ans
        Case vbYes
        GoTo carryon
        Case vbNo
        Exit Sub
        End Select

       carryon:
         Else
             .ListBox2.AddItem
             ListBox2.List(i, 0) = ListBox1.List(iCtr, 0)
             ListBox2.List(i, 1) = TextBox2
             ListBox2.List(i, 2) = TextBox6.Value
        End If
        Next i
        End If
        Next iCtr

Если я запускаю код снова, данные Listbox2 перезаписываются новымиданные. Я хочу сохранить старые уникальные данные и добавить новые в коллекцию Listbox2 перед добавлением в базу данных листа.

Любая помощь очень ценится.

Спасибо

...