На листе будут видны все строки, но в заголовке фильтра так и останутся "птички" в 1,3,5. На мой взгляд, это баг, о котором следует сообщить.
Да, это очевидно.
Значит, пока делаем отмену фильтрации только через команду диспетчера.
Но решение через API-методы мы ждем от гуру нашего форума.
В моем ответе #3 есть ссылка на форум Excel. Это хороший и нужный пример, и хотелось бы воспроизвести его в LO Calc. Кода получается значительно больше...
А пример снятия фильтра на скриншоте ниже. При этом после выполнения кода в ответе #1 все строки появились.
А код, который в Excel работал с AdvancedFilter был такой
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:L5")) Is Nothing Then
'On Error Resume Next
Application.ScreenUpdating = False
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
Range("База_данных[#All]").AdvancedFilter Action:=xlFilterInPlace _
, CriteriaRange:=Range("Условия").CurrentRegion 'Action:=xlFilterCopy
ActiveWindow.ScrollRow = 10
Application.ScreenUpdating = True
End If
End Sub
В Excel это вообще была единственная возможность соединить условия фильтра оператором "ИЛИ". В LO Calc, как я вижу, стандартный фильтр тоже позволяет соединить условия через оператор "ИЛИ".
Смысл затеи в том, что при частом использовании постоянно лезть в меню неудобно. Фильтр должен быть "живым", под рукой...
Функцию CurrentRegion() пришлось реализовать, пользователь может заполнить подряд несколько строк с условиями.