Проблема заключается в том, что если первый набор фильтров имеет правильный диапазон Set filterredRange
, тогда переменная содержит диапазон.
Если вы теперь повторно используете ту же переменную для второго фильтра
'check second filter
On Error Resume Next
Set filterredRange = tbl.ListColumns("Filed").DataBodyRange.SpecialCells(xlVisible)
On Error GoTo 0
и нет видимых ячеек, ваш код ошибки (но не показывает сообщение, потому что вы подавили его с помощью On Error Resume Next
) и ваш filterredRange
не сбрасывается (эта строка с ошибкой и, следовательно, filterredRange
по-прежнему имеет его первоначальная стоимость). Если строка содержит ошибку, эта строка вообще ничего не делает (так, как она никогда не выполнялась).
Чтобы предотвратить это, вы должны заново инициализировать переменную с помощью Set filterredRange = Nothing
, прежде чем использовать ее для второго фильтра.