2

Как автоматически обновить автофильтр Excel при изменении данных?

Вариант использования: я изменяю значение одной ячейки на значение, которое было отфильтровано. Я хочу, чтобы текущая строка исчезла без необходимости делать что-либо еще.

Кажется, это не работает с более сложными случаями:

Предположим, у вас есть лист и таблица из 2 столбцов: столбец A: результат вычисления формулы, число; col B = Имя; Задача проста: создать фильтр имен и номеров на основе числовых критериев> 0

То, что вы делаете, использует для этого автофильтр, и это работает. Но не самообновление само.

Предлагаемые макросы как-то не хотят работать:

  • Сначала я создаю автофильтр и применяю критерии (работает)
  • Во-вторых, я изменяю содержимое смежных листов, что приводит к изменению активного листа (столбец A)
  • Макросы запускаются, но не перефильтровывают список: старые записи все еще там, но с новыми номерами (даже 0, когда я использую> 0 критериев). -Тогда Макросы отключают режим и фильтр Автофильтрации, поэтому я теряю свой выбор и мне приходится выбирать заново вручную.

Полный провал .... какие-либо комментарии?

1 ответ1

1

Попробуй это

Поместите это в свой модуль ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If TypeName(Sh) = "Worksheet" Then
        With Sh
            If .AutoFilterMode Then
                If Not Intersect(.AutoFilter.Range, Target) Is Nothing Then
                    .AutoFilter.ApplyFilter
                End If
            End If
        End With
    End If
End Sub

Затем, когда вы вводите что-то в ячейку, которая является частью диапазона фильтра, фильтр обновляется

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .