Скрипт для расширенного фильтра

Автор Velvet111, 13 февраля 2017, 09:42

0 Пользователи и 1 гость просматривают эту тему.

Velvet111

Надо заставить с помощью макроса автоматически запускать расширенный фильтр при вводе условий.
Нашел скрипт для MS Office (в MS'овском все получилось сделать), но в Libre Office не могу заставить его работать. Что я делаю не так?


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:I5")) Is Nothing Then
        On Error Resume Next
        ActiveSheet.ShowAllData
        Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
    End If
End Sub

economist

Объектная модель Excel и Calс - разные.
Некоторые методы, типа Intersect - отстутсвуют или называются по-другому.
Поэтому VBA-обработка события Change из Excel не заработает в Calc. Нужно переписывать.
Не всегда переписать проще, чем написать заново, возможно даже не через Автофильтр.

Если мне, скажем, нужно скрыть отрицательные строки, то в Calc заработатет вот такой код:


Option VBASupport 1
Option Compatible
'-----------------------------------------------
Sub PsevdoAutoFilter()
For each n in [A8:A1000]
If n.Value<0 then n.EntireRow.Visible = false
End SUb



Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

rami

Для начала на главной странице форума в окошко поиска забейте Расширенный фильтр, начните читать с темы макрос для запуска расширенного фильтра в Calc-е?, потом остальные.