Ошибка связана с перемещением объекта на невидимую часть экрана. Например, комментарий или графический объект.
В этом случае наличие автофильтрации означает, что в каждом столбце есть поле со списком, как видно из ActiveSheets.Shapes
. Что-то в добавлении или удалении новых столбцов, очевидно, меняет поведение, но мне не понятно почему.
Надеюсь, есть лучшее решение, но мне удалось придумать этот обходной путь, который работает, даже если он не элегантный.
- Поворот автофильтра
- Удалить все фигуры с листа
- Обработка
- Снова включить автофильтр
который в VBA выглядит как
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Delete
Next
End If
Сделайте что-нибудь интересное здесь ...
If autoFilter = True Then
rng.autoFilter
End If