Как использовать автоматический фильтр в excel с помощью макросов [duplicate]

Это потому, что, когда вы вводите номер, нажмите «Ввод», input.nextInt() потребляет только номер, а не «конец строки». Когда input.nextLine() выполняется, он потребляет «конец строки» все еще в буфере с первого входа.

Вместо этого используйте input.nextLine() сразу после input.nextInt()

1
задан Tejas 1 October 2015 в 08:24
поделиться

1 ответ

Это ограничение автофильтров. Вы не можете использовать более двух фильтров в пользовательском интерфейсе.

Вместо этого вы можете использовать фильтр «Дополнительно», или вы можете создать массив значений, соответствующих вашим критериям, и фильтровать с помощью этого:

Sub MultiContainsAutofilter()
    Dim vData
    Dim shData                As Worksheet
    Dim d                     As Object
    Dim i                     As Long

    Set shData = ActiveSheet
    vData = shData.UsedRange.Columns(2)

    Set d = CreateObject("Scripting.Dictionary")

    For i = LBound(vData, 1) To UBound(vData, 1)
        If UCase$(vData(i, 1)) Like "*A*" Or UCase$(vData(i, 1)) Like "*B*" Or UCase$(vData(i, 1)) Like "*C*" Then
            d(vData(i, 1)) = Empty
        End If
    Next i

    If d.Count > 0 Then shData.UsedRange.AutoFilter Field:=2, Criteria1:=d.keys, Operator:=xlFilterValues
End Sub
3
ответ дан Rory 24 August 2018 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: