1

Я смотрел на другие темы безрезультатно для этого. У меня есть несколько листов в моей книге, один из которых представляет собой таблицу данных, а другие извлекают из нее данные. Я установил фильтр на этих листах, чтобы он не показывал что-либо, отображаемое как «ложное», и это здорово, пока я не добавлю данные в таблицу основных данных. Я хотел бы, чтобы кто-нибудь помог с тем, чтобы другие листы могли автоматически обновлять, показывать / показывать данные без необходимости повторного применения фильтра! Я надеюсь это имеет смысл!

Я пытался использовать этот код (найден в других темах на этом сайте), но, похоже, не работает для меня, что я делаю не так!

Private Sub Worksheet_Change(ByVal Target As Range)
If Me.FilterMode = True Then
    With Application
       .EnableEvents = False
       .ScreenUpdating = False
    End With

    With ActiveWorkbook
        .CustomViews.Add ViewName:="Mine", RowColSettings:=True
      Me.AutoFilterMode = False
        .CustomViews("Mine").Show
        .CustomViews("Mine").Delete
    End With


     With Application
       .EnableEvents = True
       .ScreenUpdating = True
    End With
End If
End Sub

1 ответ1

1

Вы используете

Private Sub Worksheet_Change(ByVal Target As Range)

Таким образом, он будет срабатывать на конкретные цели, когда они меняются. Вы не проверили цель на предмет каких-либо условий, поэтому она не сработает. Вы должны проверить, находится ли изменение цели в пределах вашего отфильтрованного диапазона, например

If Not Intersect(Target, Range("A1:A10") is Nothing Then

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