Поиск в одной электронной таблице Excel по ключу другого - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть одна электронная таблица Excel, которая содержит ряд ключей, таких как 1649567, 1649593, 1650126, 1651166, 1655794, 1656561. У меня есть вторая электронная таблица, которая содержит список ключей, включая ключи из первой электронной таблицы. Мне нужно отфильтровать вторую электронную таблицу на основе ключей в первой электронной таблице. Есть тысячи ключей. Как бы я пошел по этому поводу?

1 Ответ

0 голосов
/ 29 апреля 2018

Создайте массив из ряда ключей и используйте его в качестве параметра Criteria1 в автофильтре с оператором: = xlFilterValues. Текст, который выглядит как числа, работает лучше, чем истинные числа в массиве с xlFilterValues.

Option Explicit

Sub Macro1()
    Dim vals As Variant, i As Long

    With Worksheets("sheet2")
        With .Range(.Cells(2, "A"), .Cells(2, .Columns.Count).End(xlToLeft))
            ReDim vals(1 To .Cells.Count)
            For i = 1 To .Cells.Count
                vals(i) = .Cells(i).Text
            Next i
        End With
    End With

    With Worksheets("sheet3")
        If .AutoFilterMode Then .AutoFilterMode = False
        With .Cells(1, "A").CurrentRegion
            .AutoFilter field:=1, Criteria1:=vals, Operator:=xlFilterValues
        End With
    End With
End Sub
...