Страницы: 1
RSS
Разбить словарь на подстроку
 
Приветствую.
Что хочется. Есть 2 листа. ФИО и дата рождения с листа 1 ищутся на листе 2. Если таковые есть, то данные столбцов J,P,L листа 2 добавляются в столбцы FGH листа 1.
На текущий момент данные столбцов J,P,L листа 2 добавляются в столбец F листа 2. Никак не могу разбить найденное по столбцам, помогите плиз.
Словарь используется для ускорения работы, т.к. на каждом листе под полмиллиона строк.


Код
Sub Search()
    Dim a(), b(), t$, ii&, s$, i&, x&, ss$, d&, z&, Dict As Object, tt As Object
    Dim w As Workbook, v As Worksheet ', vm As Worksheet
    d = timeGetTime
    Set vm = Sheets("1")
    vm.Columns("F").ClearContents
    For Each w In Application.Workbooks
        If w.Name = "test.xlsm" Then
            With w.Sheets("2")
                ii = .Cells(.Rows.Count, 1).End(xlUp).Row
                a = Range(.Cells(2, "F"), .Cells(ii, "S"))
            End With
            Exit For
        End If
    Next
       With CreateObject("Scripting.Dictionary")
        For i = 2 To UBound(a)
            .Item(a(i, 1) & " " & a(i, 3)) = a(i, 5) & "|" & a(i, 11) & "|" & a(i, 7)
        Next
        vm.Activate
        ii = Cells(Rows.Count, 2).End(xlUp).Row
        a = Range("B2:C" & ii).Value
        b = Range("F2:F" & ii).Value
        
        For x = 2 To ii - 1
            t = a(x, 1) & " " & a(x, 2)
            If .Exists(t) Then
            b(x, 1) = .Item(t)
        
            End If
            z = z + 1
            
        Next x
    End With
  Range("F2:F" & ii).Value = b
     
    
End Sub
Изменено: Nekto - 02.12.2021 10:37:06
 
Здравствуйте,
знакома ли Вам эта статья?
Деление слипшегося текста функцией ФИЛЬТР.XML
 
Nekto, здравствуйте
Сейчас сделаю и обновлю этот пост - следите за оповещениями к теме (если вы их включили)  ;)

UPD: Макрос для мульти ВПР. Проверить 2 критерия и подтянуть по ним 3 столбца при совпадении
Цитата
Nekto: ФИО и дата рождения с листа 1 ищутся на листе 2. Если таковые есть, то данные столбцов J,P,L листа 2 добавляются в столбцы FGH листа 1
Пробуйте. Скорость должна быть отличная (в отчёте присутствует таймер работы макроса)
Обратите внимание, что не все даты на листе "откуда брать" настоящие  ;)
В файле подключена (раннее связывание) штатная библиотека Scripting Runtime (для словарей)

Тэги для поиска: готовое решение, словари, ВПР, найти соответствие
Изменено: Jack Famous - 02.12.2021 12:42:10
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Как красиво Вы сделали, вещь. Адаптировал под свои хотелки, всё летает.
Спасибо огромное :excl:  
Изменено: Nekto - 02.12.2021 15:56:27
 
Nekto, пожалуйста - обращайтесь  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
можно и простой код на PQ написать)
Изменено: ATK - 04.12.2021 05:39:27
Страницы: 1
Наверх