Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBA. Поиск по частичному совпадению
 
Да, скорее всего так и сделаю, если не найду другой вариант. Просто файл тяжелый, не хотела, чтобы он думал по два часа

Всем большое спасибо за советы!)))
VBA. Поиск по частичному совпадению
 
Уважаемые форумчане, добрый день!

Столкнулась с такой проблемой: есть файл с большим количеством строк. ВПР виснет и считает все очень долго, поэтому использовала макрос. Но макрос работает только при полном совпадении ячеек. То есть грубо говоря, заменяет формулу "=ВПР(А1;Лист2!А1:В200000;2;0)"
Подскажите, пожалуйста, как преобразовать макрос так, чтобы он заменял формулу "=ВПР("*"&А1&"*";Лист2!А1:В200000;2;0)"?

Заранее большое спасибо!

Вот само тело макроса:
Код
 Sub ВПР()
   
    Dim a, b, c, iLastrow As Long, i As Long, ii As Long

    With Sheets("Лист1")    
        iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
        a = Range(.[a8], .Range("a" & iLastrow)).Value
    End With

    With Sheets("Лист2")  
        iLastrow = .Cells(Rows.Count, 3).End(xlUp).Row
        b = Range(.[C8], .Range("A" & iLastrow)).Value
    End With


    ReDim c(1 To UBound(a), 1 To 30)

    With CreateObject("Scripting.Dictionary")
    

        For i = 1 To UBound(b)
            .Item(b(i, 1)) = i
        Next


        For i = 1 To UBound(a)
            If .exists(a(i, 1)) Then
                c(i, 1) = b(.Item(a(i, 1)), 2)
                               
            End If
        Next
    End With


    With Sheets("Лист1") 
        .[o8].Resize(UBound(c), 3) = c
        .Activate
    End With
End Sub

Страницы: 1
Наверх