Это проблема, с которой многие люди, похоже, борются, но вы можете отфильтровать диапазон по нескольким критериям, сначала добавив их в массив следующим образом:
Sub autofilter_range()
Dim filtur(1 To 4) As Variant
filtur(1) = "1"
filtur(3) = "3"
Sheet1.Range("A1:C7").AutoFilter field:=2, Criteria1:=filtur, Operator:=xlFilterValues
End Sub
Это создаст массив снедели с 1 по 4, затем добавляет значения в соответствующие позиции в массиве.(1 и 3 в этом случае) Затем он применяет автофильтр только с этими неделями.
Однако способ, которым вы используете автофильтр в настоящее время (при изменении таблицы на основе недавно отредактированных ячеек), очень неэффективен при применении нескольких критериев.Я предлагаю вам поменять эти ячейки на флажки и добавить значения в массив в зависимости от того, отмечены они или нет:
If Sheets("Sheet1").CheckBox1.Value = True Then filtur(1) = "1"
. Это позволит сразу проверить все флажки и применить фильтр, к которомуте, которые являются билетами и дают вам полный список по мере необходимости.